【问题标题】:Delay restart of processes in monit在监视器中延迟重新启动进程
【发布时间】:2012-08-31 18:12:40
【问题描述】:

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

【问题讨论】:

    标签: monit


    【解决方案1】:

    你可以使用类似的东西:

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

    start program = "/etc/init.d/x start" with timeout 90 seconds
    

    【讨论】:

    • 我不确定你的第二个选项:这里是关于 with timeout 的 Monit 文档:在进程检查的情况下,Monit 将等待长达 30 秒的启动/停止放弃之前完成的操作并报告错误。您可以使用 TIMEOUT 选项或全局使用设置的限制来覆盖此超时。 我认为这是允许的开始时间,而不是停止和下一次开始之间的间隔。
    【解决方案2】:

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

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

    【讨论】:

    • 你可以“监控”一个假的 PID 文件。
    【解决方案3】:

    试试

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

    这将至少等待 1 个完整周期,然后重新启动死进程。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-24
      • 2014-04-06
      • 1970-01-01
      • 2011-03-07
      相关资源
      最近更新 更多