我创建了一个 PHP 文件,其中包含一个无限循环,该循环执行某些检查并在变量发生变化时采取行动(脚本中的内容可能对我的问题不太重要)。我希望服务始终运行,直到我告诉它停止。经过一番搜索,我决定使用nohup
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/