phpを使用して別のphpプロセスを保護します(Apacheモジュールやnginxなどを実行しているプロセスを除く)
a.php は b.php を保護する必要があります
b.php で、getmypid() 関数を通じて現在のプロセスの ID を取得し、その ID を c.pid ファイルに書き込みます。プログラムの実行が完了したら、c.pid ファイルを削除またはクリアします。
a.php で、c.pid が存在するかどうかを確認し、空でない場合は、pid を読み出し、exec で ps -p pid|grep ファイル名を実行し、実行されているかどうかを確認します。 、対応する操作を実行しますなぜ ps aux|grep でファイル名を直接実行しないのかと疑問に思う人もいるかもしれませんが、ここでの主な理由は、ファイルの名前が重複している場合に発生する可能性がある問題を考慮するためです
a.php コード
コードは次のとおりです:
b.phpコード
$id=intval($argv[1]);
if(空($id))終了;
file_put_contents('pid'.$id.'.pid',getmypid());
その間(1){
file_put_contents('pid'.$id.'.pid',getmypid());
睡眠(100);
}
?>