树莓派安装看门狗
步骤/目录:
1.安装看门狗
2.修改配置
3.验证
本文首发于个人博客https://lisper517.top/index.php/archives/12/
,转载请注明出处。
本篇文章的目的是使用watchdog守护树莓派,使树莓派死机后可自动重启。
本文实验日期为2022年2月11日。使用的是树莓派4B(内存8G版),系统为Pi OS 32位桌面版(2022年1月28日更新,镜像名 2022-01-28-raspios-bullseye-armhf.img )。
1.安装看门狗
首先简单介绍下看门狗。想象有一条看门狗,树莓派系统每隔一段时间需要喂一次狗,如果超过时间没有喂狗,就说明树莓派可能死机(比如程序陷入死循环),这时狗就会发出警告,向系统发出重启信号。安装watchdog后,树莓派就可以在无人时连续工作,死机了也能重启。
在ssh界面输入以下指令安装看门狗:
apt install watchdog
2.修改配置
看一下watchdog.service文件(/lib/systemd/system/watchdog.service
),其中有WantedBy=default.target
。出来看一下default.target:
systemctl get-default
#输出结果
graphical.target
感觉不太保险,将WantedBy=default.target
改为WantedBy=multi-user.target
设置开机自启:
systemctl enable watchdog
编辑/boot/config.txt,在末尾加入dtparam=watchdog=on
;
启动看门狗cpu模块(不行的话先配置后面的,配置完重启后再试试这一句):
modprobe bcm2835_wdt
编辑看门狗配置:
nano /etc/watchdog.conf
去掉#watchdog-device = /dev/watchdog
前的#
将#watchdog-timeout = 60
改为watchdog-timeout = 10
去掉#max-load-1 = 24
前的#
将#temperature-sensor =
改为temperature-sensor = /sys/class/thermal/thermal_zone0/temp
(说明:/sys/class/thermal/thermal_zone0/temp
是显示树莓派温度的只读文件,除以1000后单位为℃。感兴趣的可以参考Pi Dashboard:给你的派装一个仪表盘实现实时监控树莓派的各项参数)
将#max-temperature = 90
改为max-temperature = 80000
(cpu80度重启。树莓派给出的温度要除1000)。最大温度可自行更改,本文中的4B空闲时,不开风扇温度40左右,开风扇27左右。
watchdog.conf中还有许多其他设置,可根据需要自行修改。
重载一下watchdog的配置:
systemctl daemon-reload
3.验证
有条件的最好树莓派插上显示器、键鼠。shell输入:(){ :|:& };:
,树莓派成功重启。