0

我可以修改 montrc 使其不会立即重新启动进程。在触发重新启动之前,该过程必须关闭一个完整的周期。这样我就可以保留现有的 capistrano 部署。

4

3 回答 3

2

你可以使用类似的东西:

check process x with pidfile /var/run/x.pid
   every y cycles

或者

start program = "/etc/init.d/x start" with timeout 90 seconds
于 2015-02-26T05:43:00.877 回答
1

如果您仅监视 PID 文件,我认为目前无法做到这一点。但是,如果您还通过侦听端口来监视服务,则可以添加一个if failed port 8080 X times within Y cycles then restart子句。然后,Monit 将在每个周期卷曲该端口,并且当故障计数在 Y 个周期内达到 X 时,它将尝试重新启动服务。

请记住,这只影响端口监视器。如果 monit 发现 PID 文件消失了,它会立即尝试重新启动它。

于 2013-02-02T05:52:37.150 回答
0

尝试

check process x with pidfile /var/run/x.pid
  if does not exist for 2 cycles then start

这将在重新启动死进程之前等待至少 1 个完整周期。

于 2015-10-30T15:03:27.683 回答