6

PHPスクリプトを5分ごとに呼び出し/実行するCRONをスケジュールしました。PHP スクリプトは次のタスクを実行します

  1. データベース内のフラグ値をチェックして、前の実行がまだ実行中かどうかを識別します。DB の値 1 はプロセスがまだ実行中であることを示し、値 0 は実行されていないことを示します。
  2. フラグ値が 1 の場合は、PHP を終了します。それ以外の場合は、次のステップに進みます。
  3. データベースのフラグ値を 0 から 1 に更新します。
  4. ビジネス ロジックを実行します。
  5. フラグの値を 1 から 0 に更新して、ユーザー テーブルでデータが使用可能になった場合に次の CRON を実行できるようにします。

ユーザーがアップロードしたデータのサイズにもよりますが、プロセスが完了するまでに平均で 35 ~ 40 分かかります。

質問、とにかく cron によって開始された PHP スクリプトの実行を強制終了または停止する方法はありますか。ユーザーが実行を停止し、新しいデータをアップロードし、CRON の実行を待機できるようにするためのボタンである可能性があります。私はすべてのフラグとデータをリセットすることができます.PHPスクリプトを殺すだけです.

私はいくつかのグーグルを行い、次のようないくつかのコマンドを使用できると考えました:

Killall -9 PHP

サーバーで実行されているすべてのphpプロセスを強制終了しますが、PHPを介してこれを行う方法がわかりません。

4

3 に答える 3

6

これを試して:

ps aux |grep 'part_of_the_name_of_your_script'|awk '{print $2}' |xargs kill -9 {}

または、crontab ファイルで crun を使用し、変数CRUN_TIME を参照してくださいcrun -h

于 2013-08-05T18:12:53.763 に答える