Monit不会执行命令

Monit不会执行命令

在 Fedora 15 上运行 Monit 5.2.5

所有标准警报都有效,但就是无法获取执行运行任何东西。

我根据 Monit Wiki 中的示例尝试了十多种不同的配置。没有任何一个执行命令做任何事情。下面只是一个简单的例子,试图让“某事”发挥作用:

check process tomcat6 with pidfile /var/run/tomcat6.pid
    start program = "/etc/init.d/tomcat6 start"
    stop program = "/etc/init.d/tomcat6 stop"
    if failed host localhost port 8080 then
        exec "/bin/bash -c '/bin/touch /tmp/monittest'"

如果我关闭 Tomcat,则会发送警报并重新启动服务。然而无论我尝试什么执行总是被忽略。

据我了解,Monit 在环境方面有很大的限制,仅限于 /bin 和 /sbin/ 等目录。因此,我尝试过的所有示例都仅限于这些目录。但还是什么都没有。

有人有什么想法吗?

ps 我已经打开了详细日志记录,日志文件中没有任何线索。

答案1

不确定连接测试是否在服务重启期间完成,也许首先尝试这样的事情:

check process tomcat6 with pidfile /var/run/tomcat6.pid
    if changed pid then exec "/bin/bash -c '/bin/touch /tmp/monittest'"

答案2

你的测试适用于我在 Debian 6.0.4 上使用从源代码编译的 Monit 5.3.2 。

请尝试将端口更改为无效值,例如 8888 或 65432,然后查看文件是否创建。

相关内容