我正在研究有助于保持进程正常运行(发生崩溃时自动重启)的不同服务。您更喜欢哪些服务?您有什么建议?以下是我发现的几种方法:
- 在 /etc/inittab 中重生
- 使用 daemontools 进行监督
- 运行
- 暴发户
- 监控
就我个人而言,monit 无法正确重生进程,这给我带来了不好的体验,因此我不得不建议不要使用它。我目前正在使用 daemontools,到目前为止,它运行良好。
答案1
答案2
如果你想要简单,我会选择运行。它将每秒重启一次服务,直到服务持续运行,只需一点点手工操作就可以替换 /etc/init.d 中的脚本,并且始终保持一致的处理。
我遇到的唯一缺点是弄清楚单次始终在线服务(“启动”但实际上退出时留下“正在运行”标志的服务,即/etc/init.d/networking
实际上不是服务但行为像服务),需要一些手动操作才能获得这种行为。大多数人会引入辅助工具来暂停运行脚本的终止,或者使用 等进行无限循环,sleep
这样它就不会退出脚本。当您发出sv stop <service>
它时,会终止 shell,一切都会“正常”进行。
答案3
答案4
Quagga 路由套件有 watchquagga,它是根据该套件的需求量身定制的。不确定它是否可以与任何通用守护进程一起使用。