我正在开始和停止一个过程通过 monit 使用以下语法:
stop program = "..." with timeout 90 seconds
一切运行良好,只是 Monitfailed to stop
总是在一分钟后报告:
从/var/log/monit.log
:
[EST Nov 11 11:04:09] info : 'myprocess' stop: /bin/su
[EST Nov 11 11:05:09] error : 'myprocess' failed to stop
[EST Nov 11 11:05:10] info : 'myprocess' stop action done
我显然希望它等待 90 秒,而不是 60 秒。我做错了什么?
答案1
您的 Monit 守护进程检查间隔可能是 60 秒,因此检查周期发生在超时之前。
set daemon 60
你能发布你的整个 Monit 配置吗?你需要 90 秒的超时来停止进程,这有什么原因吗?
默认情况下,Monit 在查看进程列表时会等待 30 秒才能执行启动/停止命令。您可以尝试更短的时间吗with timeout
?
答案2
事实证明这是 Monit 中的一个错误:https://bitbucket.org/tildeslash/monit/issue/109/failed-to-stop-always-after-60-seconds 更新至 Monit >= 5.9 应该可以解决该问题。