我使用下面的语法通过monit启动和停止一个进程 :
stop program = "..." with timeout 90 seconds
一切正常,除了Monit总是报告在一分钟后failed 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秒。 我究竟做错了什么?
您的Monit守护进程检查间隔大概是60秒,所以检查周期在超时之前发生。
set daemon 60
你可以发布你的整个Monitconfiguration吗? 是否有一个原因,你需要一个90秒的超时停止进程?
默认情况下,Monit在查看进程列表时,会等待30秒以查看启动/停止命令。 你可以尝试缩短with timeout ?
原来这是Monit中的一个bug: https : //bitbucket.org/tildeslash/monit/issue/109/failed-to-stop-always-after-60-seconds更新到Monit> = 5.9应该可以解决这个问题。