转载自:https://blog.ronpy.com/2021/10/raspberry-pi-watchdog.html
启用硬件看门狗模块
使用树莓派硬件看门狗之前,需要先启用硬件看门狗模块,对于不同版本的树莓派,其看门狗模块的名称不同,需要根据树莓派版本加载对应的模块:
树莓派 1 代 | bcm2708_wdog |
树莓派 2 代 | bcm2709_wdog |
树莓派 3 代 | bcm2835_wdt |
树莓派 4 代 | bcm2835_wdt |
确定好版本后,编辑内核模块文件 /etc/modules
,在其内容最后追加一行对应的模块名,添加完成后则之后每次系统启动时都会加载看门狗模块。
想要立即启动看门狗模块,需要执行命令:
sudo modprobe [模块名]
[模块名] 需要替换为对应版本的实际模块名
至此,已经完成了看门狗模块的加载。
安装管理服务
在 RaspiOS 下使用软件 watchdog 来管理看门狗,可以直接使用 apt 安装:
sudo apt install watchdog
然后由于显而易见的原因,要把它设置为开机启动:
systemctl enable watchdog
然后编辑配置文件 /etc/watchdog.conf,作出如下修改:
- 取消 #max-load-1 = 24 的注释(删除开头的 # 号),代表当系统 1 分钟内的负载高于 24(已经非常非常高了),就重启系统
- 取消 #watchdog-device = /dev/watchdog 的注释,设置看门狗的路径
- 增加一行 watchdog-timeout = 15,代表 15 秒内系统无响应就重启系统,在树莓派 3B 上这个值最高为 15。注意不要设置的太小,否则可能造成系统反复重启。
保存修改,重启看门狗服务:
service watchdog restart
看门狗功能就启用了。
测试看门狗
可以通过 kill 掉看门狗服务来模拟系统死机的情况:
pkill -9 watchdog
pkill -9 wd_keepalive
过 15 秒后树莓派就会自动重启。