我正在尝试进行监控检查,如果路由器失去网络连接,它会重新启动路由器。但我不希望它在启动后的前 5 分钟内重新启动,无论网络是通还是断。到目前为止,我有以下信息:
CHECK HOST ping-or-nuke ADDRESS 8.8.8.8
start program = "/bin/sleep 300" with timeout 305 seconds
if failed ping4 for 4 cycles then exec "/sbin/reboot"
onreboot start
但是如果没有网络,它似乎会在启动后非常快地启动重启,它会“忽略”我添加 5 分钟延迟的尝试。
我认为当 monit 加载时检查已经处于启动状态,但我不确定这是原因。
答案1
听起来你正在START DELAY
寻找恶魔模式。这会延迟第一次检查。因此,如果您可以接受所有其他检查也延迟到这个时间,则可以使用它。
如果那不是一个选项,您可以编写一个桥接脚本,仅在正常运行时间足够大时才重新启动:
#!/bin/bash
if [[ $(awk -F'.' '{ print $1 }' /proc/uptime) -gt 300 ]]; then
/sbin/reboot
exit $?
fi
exit 0