树莓派内核默认没有启用看门狗功能,当内核挂死时将进入“死机”状态或kgdb调试状态,并不会自动重启系统。本文为树莓派开启看门狗功能并通过内核线程周期性喂狗,当出现系统崩溃时会自动重启Linux系统。
加载看门狗模块
sudo modprobe bcm2835_wdt
/etc/modules里添加信息
bcm2835_wdt
启用硬件看门狗
sudo su
echo 'dtparam=watchdog=on' >> /boot/config.txt
reboot
安装看门狗系统服务
sudo apt-get update
sudo apt-get install watchdog
如果安装过程报错,请看我的这篇文章对你是否有帮助
看门狗安装报错解决办法
配置看门狗服务
sudo su
echo 'watchdog-device = /dev/watchdog' >> /etc/watchdog.conf
echo 'watchdog-timeout = 15' >> /etc/watchdog.conf
echo 'max-load-1 = 24' >> /etc/watchdog.conf
启用服务
su pi
sudo systemctl enable watchdog
sudo systemctl start watchdog
sudo systemctl status watchdog
如果启用正常,会得到以下结果
如果要对此进行测试,可以尝试在shell上运行fork炸弹,模拟系统卡死情况:
sudo bash -c ':(){ :|:& };:'