Я пытаюсь выполнить контрольную проверку, которая перезагружает мой маршрутизатор, если он теряет сетевое соединение. Но я не хочу, чтобы он перезагружался в течение первых 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, но я не уверен, что это причина.
Похоже, вы ищете START DELAY
в Режим Демона. Это задерживает первые проверки. Так что, если вы можете принять все другие проверки, которые также откладываются к этому времени, это можно использовать.
Если это не вариант, вы можете написать сценарий моста для перезагрузки, только если время безотказной работы достаточно велико:
#!/bin/bash
if [[ $(awk -F'.' '{ print $1 }' /proc/uptime) -gt 300 ]]; then
/sbin/reboot
exit $?
fi
exit 0