看门狗:基本配置选项无法按预期工作

看门狗:基本配置选项无法按预期工作

我运行的是 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"

根据系统日志,

  1. watchdog-timeout被设置为 254 秒(已讨论这里)。
  2. 第一次发生故障后系统重新启动test-binary

这是预期的行为还是我遗漏了什么?

PS 此刻我已经在脚本本身中实现了“等待直到 10 次失败”的逻辑。

答案1

我无法说明为何watchdog-timeout要将时间限制在 254 秒,但您链接的内容确实解释了这一点。

不过,看门狗定时器通常不会以“连续 N 次故障”模式运行。在第一次出现错误迹象时,它们会重新启动机器,因此您看到的行为是我所期望的。通常,它们在硬件中实现,需要在配置的时间段内进行“触发”,否则它将在没有任何警告的情况下对机器进行硬电源循环。这是为了尝试从内核恐慌等中解救出来。

相关内容