cronjob を使用して、1 分ごとに実行される php スクリプトを実行しています
コピーのみが実行されていることも確認する必要があるため、この php スクリプトが 2 分後も実行されている場合、cronjob は別のバージョンを実行しないでください。
現在、私には 2 つのオプションがあります。あなたのフィードバックを確認したいと思います。他にオプションがある場合は、
オプション 1: php スクリプトの開始時に tmp ファイルを作成し、php スクリプトの終了時にそれを削除します (ファイルが存在するかどうかを確認します) ---> このオプションの問題は、php スクリプトが何らかの理由でクラッシュした場合です。 、再実行されません(tmpファイルは削除されません)
オプション 2: 以下のような bash スクリプトを実行して、php スクリプトの実行を制御します ---> 良いですが、php 内で実行できる何かを探しています
#!/bin/bash
function rerun {
BASEDIR=$(dirname $0)
echo $BASEDIR/$1
if ps -ef | grep -v grep | grep $1; then
echo "Running"
exit 0
else
echo "NOT running";
/usr/local/bin/php $BASEDIR/$1 &
exit $?
fi
}
rerun myphpscript.php
PS: http://www.php.net/manual/en/class.mutex.phpで「Mutex クラス」を見たところですが、それが安定しているか、誰かが試したかどうかはわかりません。