所以我一直试图让Monit在服务启动时运行脚本。 虽然Monit没有问题重新启动服务,我当然希望得到警报,如果我的服务需要开始,而不是无限期地下降。
这是我的/etc/monit/conf.d/nginx.pid文件:
check process nginx with pidfile /var/run/nginx.pid start program = "/usr/sbin/service nginx start" stop program = "/usr/sbin/service nginx stop" if failed host 127.0.0.1 port 8080 then restart if changed pid then exec "/etc/monit/slack.rb" if failed host 127.0.0.1 port 8080 then exec "/etc/monit/slack.rb" else if succeeded then exec "/etc/monit/slack.rb" if cpu is greater than 40% for 2 cycles then exec "/etc/monit/slack.rb" else if succeeded then exec "/etc/monit/slack.rb" if cpu > 60% for 5 cycles then restart
现在monit会运行我的slack.rb脚本,如果我将端口更改为不在nginx运行的其他端口(所以它显然无法连接),但它不会运行,当nginx停止,但后来开始monit的。 后一种情况是我需要工作的。
谢谢你的帮助!
我这样做了:
check process nginx with pidfile /var/run/nginx.pid start program = "/usr/sbin/service nginx start" stop program = "/usr/sbin/service nginx stop" IF does not exist THEN restart ELSE IF SUCCEEDED THEN exec "/etc/monit/slack.rb" IF failed host 127.0.0.1 port 8080 THEN restart ELSE IF SUCCEEDED THEN exec "/etc/monit/slack.rb"