我已经安装了Supervisor
适用于 Ubuntu 的软件包,因为有人在 serverfault 上向我推荐了这个软件包,以使我的所有进程始终保持活动状态。
但是使用两天后我通过supervisorctl
命令看到:10 个进程中有 4 个出现致命错误并且无法运行。
...
sync FATAL Exited too quickly (process log may have details)
我重启了所有进程,它们都成功恢复了。那么为什么我Supervisor
没有这样做呢?如何设置永久恢复损坏的进程?或者我应该使用什么来一直尝试恢复进程而不超时,即使进程一直失败?因为数据库连接即使在 8 小时后也可以恢复,所以它应该一直尝试访问数据库而不退出。
答案1
那么为什么主管没有这么做呢?
Supervisor 确实尝试重新启动您的进程,但是它们退出得太快,因此在尝试了配置的次数后就放弃了。
如何设置永久恢复中断的进程?
您可以将startretries
值从默认值 3 增加到更高的数字,这样主管就不会太快放弃。但首先,您应该检查您尝试重新启动的进程的日志,并检查为什么它三次启动这些默认值失败。
或者我应该用什么来一直尝试恢复过程而不发生任何超时,即使该过程一直失败?
不要这样做 - 修复任何阻止进程正常运行的问题。盲目重启不会有任何效果。如果您确实需要这种行为(这值得怀疑),请探索 systemd 服务。