解決策はこのアイデアに基づいている可能性があります:
- 長時間実行されるスクリプトの開始時に、を使用
getmypidしてそのPID(プロセスID)を取得します
- そのPIDをファイルに保存する
- スクリプトの最後で、スクリプトが終了する直前に、そのファイルを削除します。
別のプロセスが起動されると、そのファイルが存在するかどうかを確認できます。
- そうであり、ファイルに含まれているPIDを持つプロセスがまだ実行されている場合は、次のことを実行する必要があります。
- どちらかを殺す
- または、同時に実行されている1つのプロセスで十分であると考えて停止します
- ファイルは存在するが、そのPIDを持つプロセスが存在しない場合は、最初のプロセスが停止したことを意味します(たとえば、致命的なエラーなど)。
- ファイルが存在しない場合は、最初のプロセスが正常に終了したことを意味します
プロセスが実行されているかどうかを検出し、最終的にはそれを強制終了することについて、PHPがそのような機能を提供するかどうかはわかりません...などのコマンドラインユーティリティを呼び出すために使用する必要があるかもしれませexecん...pskill