2009-05-28 23 views
9

10分ごとに実行されるcronジョブがあり、なんらかの理由でこのジョブを実行するのに12分かかる場合、以前のコードが実行されている間にcronが別のインスタンスを開始しますか?もしそうなら、どうすればLinux上でこれを防ぐことができますか?Cronジョブを実行する

答えて

10

はい、そうです。

プログラムで.pidファイルを作成する必要があります(例:/ var/run /)。起動時には、そのようなファイルがすでに存在するかどうかを確認し、存在する場合は終了する必要があります。

あなたはどのプログラム/スクリプトを実行していますか?

+0

を私がメールを送信するPHPスクリプトを実行しています。 –

+0

このようなものは、次にトリックを行うでしょうhttp://www.dreamincode.net/code/snippet2407.htm – MartinodF

+0

これを行う方法について私たちにスニペットを見せることができますか? – oneofakind

3

はい。前のプロセスが完了していない場合でも、Cronはスケジュールされた間隔でプロセスを起動します。

別の回答に記載されているように、ファイルをtouchにすることができます。プロセスを開始する前にその存在を確認してください。

それとも、「インスタンス」はすでに実行されているかどうかを確認するために、プロセスのリストを調べることができます:

ps -ef | grep *your_script_name* | grep -v grep | wc -l 
関連する問題