我有一个通过通常的init.d/service脚本运行的守护进程.
我有monit运行,确保这些守护进程在崩溃时重新启动.
我有一个请求'service foo stop'应该停止deamon,并且因为它被明确停止,而不是崩溃,monit不应该重启它.如何用monit实现这个目标?
我可以让服务脚本的stop()例程调用'monit unmonitor',但这似乎是循环和错误的.
谢谢,戴夫
有一个MODE参数:
Monit 每个服务支持三种监控模式:主动、被动和手动。
句法:
模式 在主动模式(默认)下,Monit 将主动监控服务,并在出现问题时发出警报和/或重新启动服务。
在被动模式下,Monit 将被动监视服务并发出警报,但不会尝试通过执行启动、停止或重新启动来解决问题。
在手动模式下,只有通过 Monit 启动服务时,Monit 才会进入活动模式
从这里:https : //mmonit.com/monit/documentation/monit.html#SERVICE-MONITORING-MODE
这样,如果你管理通过runit或暴发户服务,只是想用monit的警报和仪表板,您只需为所有这些服务设置mode到passive。
例如:
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)
如果您需要在线启用/禁用该功能但不是永久启用 - 请参考其他人的答案,他们没问题。