私は1つのphpスクリプトを持っており、CentOSで10分ごとにcronを介してこのスクリプトを実行しています。
問題は、cronジョブに10分以上かかる場合、同じcronジョブの別のインスタンスが開始されることです。
私は1つのトリックを試しました。それは次のとおりです。
- cronジョブの開始時に、phpコード(pidファイルと同じ)を使用して1つのロックファイルを作成しました。
- ジョブが終了したときに、phpコードを含むロックファイルを削除しました。
- また、新しいcronジョブがスクリプトの実行を開始したときに、ロックファイルが存在するかどうかを確認し、存在する場合はスクリプトを中止しました。
ただし、何らかの理由でロックファイルがスクリプトによって削除または削除されない場合、1つの問題が発生する可能性があります。cronは二度と起動しません。
Linuxコマンドなどを使用して、cronジョブがすでに実行されている場合に、その実行を再度停止する方法はありますか?