在计算机中,“看门狗”指的是一种硬件计时器,用于在计算机失去响应(死机)的时候重启计算机。计算机的系统上要运行一个程序不断和看门狗硬件通信。当通信中断经过一段预设的时间后,看门狗就会通过发送 RESET 信号或者切断再接通电源等方式强制重启,保证计算机上运行的服务不长时间中断。
在折腾树莓派的过程中,我也曾好几次让树莓派失去响应,结果不得不人工开关电源来重启。通过开启树莓派上的硬件看门狗功能,就可以减少这种情况的出现。
由于 Linux “万物皆文件”的特点,可以通过 ls 命令直接查看看门狗驱动的状态:
ls /dev/watchdog |
---|
如果有这个文件,可以直接跳到下一部分。如果没有,就要根据树莓派版本加载驱动:
使用 modprobe -v [驱动名]
加载驱动,然后再 ls /dev/watchdog
查看情况。如果驱动加载成功,就要将这个驱动设置为开机加载。编辑 /etc/modules
,另起一行填入驱动名就可以了。
前面提到,硬件看门狗需要和软件通信来确定系统的状态。在 Raspbian 下这个软件是 watchdog,可以直接 apt-get 安装:
apt-get install watchdog |
---|
然后由于显而易见的原因,要把它设置为开机启动:
systemctl enable watchdog |
---|
然后编辑配置文件 /etc/watchdog.conf
,作出如下修改:
保存修改,重启看门狗服务:
service watchdog restart |
---|
看门狗功能就启用了。
可以通过 kill 掉看门狗服务来模拟系统死机的情况:
pkill -9 watchdogpkill -9 wd_keepalive |
---|
过 15 秒后树莓派就会自动重启。
https://lantian.pub/article/modify-computer/raspberry-pi-3b-hardware-watchdog.lantian/