答案1
嗯,如果你正在使用 Ubuntu,他们的新 init 进程,暴发户,包括一定程度的进程监督。它可用于标准的服务启动和停止,就像 SysV init 脚本一样,它还可以监视正在运行的应用程序,并在应用程序死机时重新启动它们。
根据您的需要,您还可以通过 inittab 实现穷人的进程重启程序。
如果你主要想找一些东西来监视某个进程,确保它始终在运行,然后在它不运行的时候重新启动它,那么我很幸运重新启动。不幸的是,据我所知,它的唯一来源是 Debian 软件包。但是,它是一个非常小而简单的应用程序,基本上只是一个 .c 和 .h 文件,带有一个 make 文件。从 Red Hat 上的 Debian 源代码 tarball 编译它很简单(我甚至在以前的工作中制作了它的 RPM)。
我听说过但没用过的最后一个选项是导师。它看起来像一个很有前途的工具,但是 restartd 在过去对我来说已经足够好了,可以满足我的需要,所以我还没有费心去使用它。
答案2
+1 给 runit。比 daemontools 功能更多、更灵活,兼容现有的 daemontools 参数和选项。非常简洁。
但正如您所提到的,很多工具都带有自己的控制二进制文件,apache2ctl、ejabberdctl、poundctl、collectd 等。尽管存在黑客攻击,但有时最好还是坚持使用提供的工具,尤其是当您不确定最干净的实现时。我通常会妥协,让大多数服务在 runit 的监督下运行。其他服务可以使用简单的方式运行。
答案3
嗯,有运行。我无法告诉你它与 daemontools 的区别和相似之处,但从 Berstein 风格的网站来看,我认为它肯定受到了 Bernstein 的影响。
答案4
作为已经提到的替代方案daemonize
,daemontools
还有守护进程libslack 包的命令。
daemon
具有很高的可配置性,并且确实处理所有繁琐的守护进程事务,例如自动重启、日志记录或 pidfile 处理。