我有一个通过 nohup 运行的 php 文件,它允许使用名为 ratchet 的 php 库进行套接字:
nohup php /var/www/html/bin/server.php > /dev/null 2> /dev/null & echo $!
但有时文件会因为“mysql 服务器已消失”或其他未发现的问题而崩溃。
我可以使用什么解决方案来确保运行文件以 100% 运行?
答案1
正如 @larsks 已经评论的那样:从系统管理员的角度来看,您可以从合适的主管(例如 systemd 或列出的其他主管之一)运行您的进程https://en.wikipedia.org/wiki/Process_supervision
这应该负责系统启动时启动的过程、故障时重新启动、请求时停止服务以及一些日志记录。
第二:外部监视器,检查软件运行的系统和软件本身是否仍按预期工作、是否健康、是否具有足够的资源等,并在情况不佳时向您发出警报。
作为系统管理员,我通常不能再这样做了。当您的自定义应用程序很糟糕时,这就是需要修复的地方(将错误重定向到 /dev/null 对检测错误没有帮助)