将runit与monit结合使用有什么意义?

我看到很多人使用monit结合runit。 这不是多余的吗? 使用runit也有什么意义? 是否因为在处理服务时更可靠(因为它不依赖于pidfiles)?

谢谢!

我从来没有听说过runit ,但我是一个沉重的Monit用户…

看着runit ,我发现它是一个init替代品。 我认为大多数企业系统都使用默认的Sys V init或Upstart 。 我不认为这是一个常见的做法来改变它。

然而,这里的关系可能是runit提供了产生Monit并确保它仍然运行的便利方式。 也许类似于从inittab运行Monit。 它本质上是“观察守望者”或监视你的监视系统。

在实践中,我使用Monit作为一个守护进程,并没有任何问题,它崩溃或被杀害。 也许runit的吸引力在于它提供了一些额外的保护。

至于Monit,它与进程名称模式匹配而不是PID文件运行良好 。

runit非常适合于控制服务和日志logging,并且还可以坚持unix方式:可以根据需要轻松地组合简单的部分。 它可以做一些检查和事件处理服务启动/停止,但你必须脚本所有这些东西自己。 注意:如果您的服务无法在前台运行,则runit不起作用。

monit对于控制服务是可以的(但是不如runit好,因为你必须自己处理守护进程和日志logging),并且如果它们暴露正确的pidfile,它也适用于自我守护进程。 另一方面,观看服务真的很棒:事件处理,检查内存泄漏等。 此外,它具有良好的仪表板浏览服务状态(基于命令行和基于networking)和商业仪表板m / monit从多个服务器获取数据。

这种使用runit + monit的方式如下所示:

  • runit用于服务监督,日志logging,自动重启等类似的东西
  • monit用于服务状态更改通知,更多扩展检查和基本服务监视