如何在 Supervisord 中自动重新启动退出状态为 0 的已退出进程?

如何在 Supervisord 中自动重新启动退出状态为 0 的已退出进程?

我正在使用supervisord执行一些PHP脚本。有时我的某个进程会停止并显示错误日志:

INFO exited: worker_push_notif (exit status 0; expected).

我已经设置了配置autorestart=true,但仍然需要手动重新启动。以下是我的完整配置:

[program:worker_push_notif]
directory = /opt/initproject/workers
command = /usr/bin/php /opt/initproject/workers/fcm_pushnotif.php
autostart=true
autorestart=true
startretries=3
stdout_logfile  = /var/log/initproject/pushnotif.log
stderr_logfile  = /var/log/initproject/pushnotif.err

需要帮助来处理autorestart退出状态0。谢谢。

注意:Ubuntu 14.04,Supervisord 3.0

答案1

在解决同一问题时,我创建了一个返回 1 的简单启动器脚本。然后我调用启动器脚本,而不是直接调用原始脚本。这足以欺骗 Supervisord。我假设有一种更简洁的方法,但在文档中找不到它。

#!/bin/bash
/path/to/your/script
exit 1

相关内容