1

もともと、毎日phpファイルを実行するcronjobがありました。どうやらphpファイルが重すぎて、cronjobがそれを実行していませんでした。

私は 24 時間スリープし、完全に機能するデーモンを作成することを選択しましたが、サーバーが非アクティブなために一定時間後にこのプロセスを強制終了すると信じています。5 分ごとに実行される DEAMON があり、これは停止しませんが、24 時間待機する DEAMON は常に動作を停止します。

私の計画は、プロセスが実行されていない場合はプロセスが実行されているかどうかを確認する cronjob を作成することです。

exec("ps auxwww|grep _DAEMON.php|grep -v grep", $output);
if(empty($output)){
   exec("php -f _DAEMON.php");
}

何らかの理由でこれは機能していません。exec("ps auxwww|grep _DAEMON.php|grep -v grep", $output)スクリプトが実行されているかどうかを完全に検出します。動作しないスクリプトも同様ですexec("php -f _DAEMON.php")

print_r私は$status fromを試みましたがexec("php -f _DAEMON.php",$status);、これは私が得たものです:

Array
(
    [0] => X-Powered-By: PHP/5.2.17
    [1] => Content-type: text/html
    [2] => 
)

私は試してみexec("php-cli -f _DAEMON.php")て完全にうまくいきましたが、私が呼び出しているファイルはデーモンであり、php-cliそれを元のファイルの一部にし (何らかの種類だとinclude()思います)、元のファイルをフリーズするため、デーモン用に別の新しいプロセスを作成しますが、元のファイルは永久に読み込まれます。

何か案は?ありがとう!

4

0 に答える 0