我运行 ubuntu 14.04 LTS 和 watchdog 5.13。我的目标是实现以下目标:
- 每 30 秒运行一次外部检查脚本
- 如果脚本在 300 秒内失败,则重新启动(例如,连续 10 次失败尝试)
我遇到了最基本的看门狗配置问题:
$ cat /etc/watchdog.conf
watchdog-device = /dev/watchdog
watchdog-timeout = 300
interval = 30
test-binary = /usr/local/sbin/watchdog_check.sh
realtime = yes
priority = 1
$ cat /etc/default/watchdog
run_watchdog=1
run_wd_keepalive=1
watchdog_module="none"
watchdog_options="-c /etc/watchdog.conf --verbose"
根据系统日志,
watchdog-timeout
被设置为 254s(在这里讨论)。- 系统在第一次失败后重新启动
test-binary
。
这是预期的行为还是我错过了什么?
PS 目前我已经在我的脚本中实现了“等到 10 次失败”的逻辑。
我不能说
watchdog-timeout
被限制在 254 秒,但你链接到的内容肯定可以解释它。不过,看门狗定时器通常不会以“连续 N 次故障”模式运行。在出现错误的第一个迹象时,他们会重新启动机器,因此您看到的行为就是我期望它工作的方式。通常它们是在硬件中实现的,需要在配置的时间内“搔痒”,否则它将在没有任何警告的情况下硬重启机器。这是为了尝试从内核恐慌等中解救出来。