Daemontools (djbtools) 的替代品来监督 unix 进程?

Daemontools (djbtools) 的替代品来监督 unix 进程?

我用过守护进程工具提供一种简单可靠的方法来监督我服务器上的 Unix 服务。它工作得很好,但它需要一种不同的思维方式(DJB 方式) 一些常见的投诉包括:

  • 泰64N基于时间戳
  • 不将脚本存储在 /etc/init.d (或 (/usr/local)/etc/rc.d) 下
  • 并不总是能与 apachectl 之类的脚本配合使用。有些脚本需要重写。

我记得大约两年前一些类似的“监督/看门狗”守护进程正在开发中,但有些仍然有些粗糙。

如果您已从 Daemontools 切换到其他产品,您选择了什么?它是否适合您?RedHat 或 Ubuntu 是否默认附带任何进程管理器实用程序?

答案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

作为已经提到的替代方案daemonizedaemontools还有守护进程libslack 包的命令。

daemon具有很高的可配置性,并且确实处理所有繁琐的守护进程事务,例如自动重启、日志记录或 pidfile 处理。

相关内容