我可以修改montrc,使其不会立即重启进程。在触发重启之前,该过程必须关闭整个周期。这样我就可以保留现有的capistrano部署。
答案 0 :(得分:2)
你可以使用类似的东西:
check process x with pidfile /var/run/x.pid
every y cycles
或
start program = "/etc/init.d/x start" with timeout 90 seconds
答案 1 :(得分:1)
如果您只监控PID文件,我认为目前不可能这样做。但是,如果您还通过侦听端口来监视服务,则可以添加if failed port 8080 X times within Y cycles then restart
子句。然后,Monit将在每个周期卷曲该端口,当失败计数在Y个周期内达到X时,它将尝试重新启动该服务。
请记住,这只会影响端口监视器。如果monit注意到PID文件消失了,它将立即尝试重新启动它。
答案 2 :(得分:0)
尝试
check process x with pidfile /var/run/x.pid
if does not exist for 2 cycles then start
在重新启动死循环之前,这将等待至少1个完整循环。