PHPスクリプトをバックグラウンドで常時実行

PHPスクリプトをバックグラウンドで常時実行

特定のチェックを実行し、変数が変更された場合に動作する無限ループを含む PHP ファイルを作成しました (スクリプトの内容は、おそらく私の質問にとってあまり重要ではありません)。停止するように指示するまで、サービスを常に実行したいです。いくつか調べた後、nohupこのタスクに使用することにしました。ただし、nohup の欠点は、サービスが停止しているかどうかを実際に監視できないことです (手動で実行してps -auxプロセスを検索する以外)。

についても読んだことがありますがsupervisord、これもかなり良さそうですが、ちょっと迷っていて、最善の解決策が何なのかよくわかりません。再起動時に PHP スクリプトが自動的に開始されるようにし、スクリプトがまだ実行中かどうかをサービスで確認し、実行中でない場合は再起動/警告して、状況を確認できるようにしたいです。

nohupまたはのどちらかを使用すべきでしょうかsupervisord? それとも、まったく別のものを推奨していますか? 内にサービスの実行を簡単に追加できる Docker コンテナー内でサービスを実行できればすばらしいと思いますDockerfile

答え1

古き良き CRON を使用する方がよさそうです。

任意の間隔でスクリプトを実行するように設定できますが、継続的に実行することはお勧めしません。5 分ごとに実行することをお勧めします。次のようになります。

*/5 * * * * php /path/to/php/file >/dev/null 2>&1

CRON についてさらに詳しく知るには、次の手順に従ってください。https://linuxman.co/linux-server/cron-a-nosedive-into-lazy-sysadmin/

関連情報