在背景不斷運行 PHP 腳本

在背景不斷運行 PHP 腳本

我創建了一個 PHP 文件,其中包含一個無限循環,該循環會執行某些檢查並在變數發生變化時採取行動(腳本內的內容對於我的問題可能不是很重要)。我希望該服務始終運行,直到我告訴它停止。經過一番搜索後,我決定用它nohup來完成這項任務。然而,nohup 的缺點是我無法真正監控服務是否已關閉(除了手動運行ps -aux並查找進程)。

我也讀過有關的內容supervisord,聽起來也不錯,但我有點迷失,真的不知道最好的解決方案是什麼。我希望 PHP 腳本在重新啟動時自動啟動,並且我希望該服務檢查腳本是否仍在運行,如果沒有,我希望它重新啟動/發出警報,以便我可以檢查發生了什麼。

我應該使用nohup或 嗎supervisord?或者你們推薦一些完全不同的東西?如果我可以在 docker 容器內運行該服務,那麼我可以簡單地將服務的執行添加到Dockerfile.

答案1

聽起來你最好只使用good'ol CRON。

您可以將任何腳本配置為以任意時間間隔運行,但我不建議連續運行它,也許每 5 分鐘運行一次。所以像這樣:

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

所以你可以了解更多關於 CRON 的資訊:https://linuxman.co/linux-server/cron-a-nosedive-into-lazy-sysadmin/

相關內容