步骤/目录:
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输入:(){ :|:& };:,树莓派成功重启。

标签: 树莓派, watchdog

添加新评论