过程监控服务

过程监控服务

我正在研究有助于保持进程正常运行(发生崩溃时自动重启)的不同服务。您更喜欢哪些服务?您有什么建议?以下是我发现的几种方法:

  1. 在 /etc/inittab 中重生
  2. 使用 daemontools 进行监督
  3. 运行
  4. 暴发户
  5. 监控

就我个人而言,monit 无法正确重生进程,这给我带来了不好的体验,因此我不得不建议不要使用它。我目前正在使用 daemontools,到目前为止,它运行良好。

答案1

守护进程工具确实得到了很好的证明;我认为,许可证不再是问题了。

并且它的常问问题将其与您询问的 inittab 进行比较。

答案2

如果你想要简单,我会选择运行。它将每秒重启一次服务,直到服务持续运行,只需一点点手工操作就可以替换 /etc/init.d 中的脚本,并且始终保持一致的处理。

我遇到的唯一缺点是弄清楚单次始终在线服务(“启动”但实际上退出时留下“正在运行”标志的服务,即/etc/init.d/networking实际上不是服务但行为像服务),需要一些手动操作才能获得这种行为。大多数人会引入辅助工具来暂停运行脚本的终止,或者使用 等进行无限循环,sleep这样它就不会退出脚本。当您发出sv stop <service>它时,会终止 shell,一切都会“正常”进行。

答案3

启动解决了这个问题以及其他许多问题。根据维基百科文章

launchd 守护进程本质上是 init、rc、init.d 和 rc.d 脚本、SystemStarter(Mac OS X)、inetd 和 xinetd、atd、crond 和 watchdogd 的替代品。

它在 Mac 世界中非常常见,但它是开源的,所以没有理由不能在 Linux 中使用它。Ubuntu 考虑过使用它,但当时的许可证不兼容(后来改为 Apache 许可证)。

答案4

Quagga 路由套件有 watchquagga,它是根据该套件的需求量身定制的。不确定它是否可以与任何通用守护进程一起使用。

相关内容