Monit - 停止服务并停留?

Dav*_*edy 11 monit

我有一个通过通常的init.d/service脚本运行的守护进程.

我有monit运行,确保这些守护进程在崩溃时重新启动.

我有一个请求'service foo stop'应该停止deamon,并且因为它被明确停止,而不是崩溃,monit不应该重启它.如何用monit实现这个目标?

我可以让服务脚本的stop()例程调用'monit unmonitor',但这似乎是循环和错误的.

谢谢,戴夫

jmo*_*iro 23

我认为你应该用monit stop foo而不是service foo stop.这样Monit就知道服务没有崩溃 - 并且不会重启它.


tim*_*urb 7

有一个MODE参数:

Monit 每个服务支持三种监控模式:主动、被动和手动。

句法:

模式 在主动模式(默认)下,Monit 将主动监控服务,并在出现问题时发出警报和/或重新启动服务。

在被动模式下,Monit 将被动监视服务并发出警报,但不会尝试通过执行启动、停止或重新启动来解决问题。

在手动模式下,只有通过 Monit 启动服务时,Monit 才会进入活动模式

从这里:https : //mmonit.com/monit/documentation/monit.html#SERVICE-MONITORING-MODE

这样,如果你管理通过runit或暴发户服务,只是想用monit的警报和仪表板,您只需为所有这些服务设置modepassive

例如:

check process heka with pidfile /etc/sv/myservice/supervise/pid
    start program = "/usr/bin/sv start myservice"
    stop program = "/usr/bin/sv stop myservice"
    mode passive
Run Code Online (Sandbox Code Playgroud)

如果您需要在线启用/禁用该功能但不是永久启用 - 请参考其他人的答案,他们没问题。