我希望 monit 检查特定进程并仅在依赖的文件系统可用时启动它。
check process Tomcat with pidfile /path/to/tomcat/TOMCAT.PID
depends on abc
start program = "../scripts/start_tomcat.sh"
stop program = "../scripts/stop_tomcat.sh -force"
check filesystem abc with path /path/to/abc
if does not exist then restart
在上面的配置中,当文件系统发生故障时,monit 会反复启动和停止 tomcat,这会使 8080 端口一直处于监听状态。我想让启动程序仅在文件系统可用时运行。而不是反复启动和停止它。
答案1
在这里,你定义了重新开始作为行动文件系统,因此当文件不存在时,它将主要传播重新开始对所有依赖“检查”规则的操作如文档中所述:
如果重新启动服务,它将首先停止所有依赖于它的活动服务,然后在启动后,启动重新启动之前处于活动状态的所有依赖服务。
正如之前其他人所说,为什么文件系统会崩溃?如果这是一个已安装的目录,最好的方法是采取措施再次安装文件系统,并使用自定义的“执行文件系统规则中的操作并让 monit 通过依赖管理规则启动 tomcat。
更多详情请访问:https://mmonit.com/monit/documentation/monit.html#SERVICE-DEPENDENCIES