过程监控服务

我正在研究不同的服务,以帮助保持进程运行(在发生崩溃时自动重启)。 你喜欢哪一个?你的赞美/build议是什么? 以下是我find的一些方法:

  1. 在/ etc / inittab中重新生成
  2. 用daemontools监督
  3. 运行
  4. 暴发户
  5. monit的

就个人而言,我有一个不好的经验,monit不正确的respawning进程,所以我不得不build议反对它。 我目前正在使用daemontools,到目前为止它工作得很好。

守护神工具确实得到了很好的certificate; 许可证不再是问题了,我不这么认为。

它的FAQ将它与你问到的inittab进行比较。

如果你想简单,我会用runit去。 它会每秒重新启动一次服务,直到一直启动,可以用一点点手工来replace/etc/init.d中的脚本,并且一直处理一致。

我唯一的缺点是搞清楚一次性服务(服务“开始”,但实际上退出,而留下一个标志,他们是“运行”,即/etc/init.d/networking真的不是'一个服务,但行为像一个),有一个手持,与它一起去获得这种行为。 大多数人引入了一个辅助工具来暂停运行脚本的终止,或者用sleep等无限循环,以便它不会退出脚本。 当你发出sv stop <service>它终止shell,一切正常。

推出解决了这个问题等等。 根据维基百科的文章 :

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

这是在mac世界多产,但它是开源的,没有理由你不能在linux中使用它。 Ubuntu考虑使用它,但是当时的许可证是不兼容的(它已经被更改为Apache许可证)。

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