私はコマンドラインPHP を実行するcronジョブを実行します。このスクリプトは、Webサービスを呼び出し、毎日7hrsのようにDBにデータを挿入します。 奇妙なことは時には決して終わらないことです。crontabが起動しましたが、時々終了しません
例外が検出された場合でも、スクリプトの最後までは引き続き確認する必要があります。スクリプトにエラーがある場合、私のrun.htmlにエラーが表示されるはずです。
私のcrontabは、すべての7時間
php run.php >> "run.html"
以下のような状況は今、時々、私のrun.html doesntのは、書かれたものを持っている走るbashスクリプトを実行しています。 0バイト。
実行中は、このプロセスにpidが関連付けられています。 しかしrun.htmlには何も書かれていないのに、ps -eo pid、lstart、etime、cmd | grep phpというコマンドを使ってもう一度プロセスをチェックしても、プロセスが既に終了していることが分かります。
php_errors.logに示す誤りがないように私には時間がタイムアウトの問題であるしていない、と私はすでに私のスクリプトで
ini_set ("memory_limit",0);
を設定して、それが他のどのような原因だろうか?
スクリプトが完了する前にエラー状態が発生した場合は、run.htmlに書き込むことを検討してください。たぶん、これが起こる原因となるエラーがあります。長寿命のプロセスは通常、デバッグするのが難しいです。 – Wayne
多くのログを追加するのに役立つものが1つあります。すでに出力をキャプチャしているので、ときどき状態をエコーすることができます。あなたは必ずしもPHPエラーを出力していない悪いデータを打つかもしれません。 –
hmmm、それについてもっと教えてください。私はエコーをしても、run.htmlはまだ空白です。なぜなら、PHPのコンパイルが終了した後でレンダリングされ、その後に.htmlファイルに書き込むbashスクリプトが続きます。 – flyclassic