[PHP-users 15963]Re: cron実行時のみのタイムアウト。
NIC
avis_caerulea @ paw.hi-ho.ne.jp
2003年 6月 16日 (月) 17:55:14 JST
こんにちは、古屋です。
出掛けていてメールチェック出来なかったので申し訳ないです。
> 相対パスではなく、フルパスでファイルを指定してみてはどうでしょうか?
まつざきさん、レスありがとうございました。
そう思ってMLを出した後に自分でもフルパス指定で試してみたのですが、結果は
変わりませんでした。
> cronから実行するときのUIDでphp.iniが読めないようになっているとか?
石井さん、レスありがとうございました。
cronはroot権限での実行にしてあるので、大丈夫だとは思います。
説明不足ですみませんでした。
> これって本当にタイムアウトしているのでしょうか?
> それ以前にスクリプトが実行されていない、ということはないでしょうか?
じゅんやさんもレスありがとうございました。
一応cronでの指定時刻になると、スクリプトで…
fwrite($fp,"実行時刻 : ".date("Y/m/d H:i",time())."\n");
の行を実行した形跡が出力ファイルに残っているので、実行されていないという
ことはないと思われます。
シェルでの実行も試してみたのですが、やはり途中で処理が終わってしまってい
ました…。
> cronで実行されるプログラムがなんらかの標準出力を吐くと、
> それの内容を全てユーザーにメールするようになっています。
わたなべさん、レスありがとうございます。
正直、cronがそのような動作をするということを知りませんでした。
チェック用に標準出力を結構出すようにしていたので、cronやphpではなく、そ
のメール送信でなんかトラブったような気がします。
/var/log/以下のログファイルでは今のところ見当たらない気がします。
ただ、cronの実行時に「2>&1」のオプションを付けてもやはり最後まで実行を完了
してはくれませんでした。
cronの出力関係で問題があるようなのに、これでも解決しなかったのは意外でし
た。
> phpのCLIに-qオプションなんてありましたっけ?
ネットで見かけたのですが、コマンドラインで調べてみたら見当たりませんね…。
どうやらヴァージョン違いか見間違いだったのかも知れません。
詳細は忘れてしまったのですが、CLIでは不要な出力をしないようにするような
ものだった気がしました。
外すことにします。
一応、標準出力系の命令を一切使わないことで強制終了するという現象に対処す
ることが出来たのですが、原因はハッキリしていません。
どうやらcronが送り出すメールあたりに原因がありそうな気がするので、もう少
し調べてみようかと思います。
PHP-users メーリングリストの案内