[PHP-users 23428]Re: atコマンドについて

Shuhei Tomita tomita @ zingy.or.jp
2004年 10月 4日 (月) 23:29:50 JST


On Mon, 4 Oct 2004 18:35:42 +0900
"bear" <windows @ cyclops.co.jp> wrote:

冨田です。

atコマンドの-f引数の渡し方が間違っているかもしれません。お使いの環境で、
man atしたほうがよいと思われます。

> -f file 
> 標準入力でなく、 file からジョブを読み取る。 
http://www.linux.or.jp/JM/html/at/man1/at.1.html





> $command = "at -f /usr/local/apache/htdocs/write.php 18:02 2004-10-04";
> [postgres @ localhost postgres]$ at 18:30

コマンドラインから試すのであれば、念のためphpから全くと同じように、
$ at -f /usr/local/apache/htdocs/write.php 18:02 2004-10-04
とすべきです。引数が違えば動いたり動かなかったりするのはよくあります。
本当は実行ユーザもphpからの際と同じにするほうがいいですね。

> write.php*********************************************************
> #!/usr/local/bin/php -q
> <?php
> $fp = @fopen("/usr/local/apache/htdocs/test.dat", "w") or die("DIE・・・・
> ");
> if (@flock($fp, LOCK_EX)) {
>     @fwrite($fp, "testtest");
>     flock($fp, LOCK_UN);
> }
> chmod("/usr/local/apache/htdocs/test.dat", 0777);
> @fclose($fp);
> ?>
> ****************************************************************

これは今回の問題の原因じゃないと思いますが、プログラムが変な動作をする時
は@は極力はずしておいた方がいいと思います。環境が変わると別のエラーメッ
セージが出力される可能性もありますから。@を付けるのは、@なしでプログラム
が完璧に動くのが確認された後でも遅くありません。

@を付けるのは、@の行で発生する可能性のエラーが全て想定済みであり、かつ無
視しても差し支えない時だけにすべきです。

#@は転んでも自分で立ち上がれる人限定だと思います。
#そういや、flock($fp, LOCK_UN)しないといけないのかな……?

………………………………………………………………………………………………
		冨田 修平(Shuhei Tomita) tomita @ zingy.or.jp
………………………………………………………………………………………………



PHP-users メーリングリストの案内