linux系统配置看门狗
以 ubuntu 系统配置看门狗为例
配置看门狗使用的脚本文件,需要使用管理员权限来执行:
配置是:系统每 30S 喂一次狗,超过 60S 不进行投喂,就会自动重启。
1. 系统脚本内容:
#!/bin/bash# 1. 设置要修改的参数
RUNTIME_WATCHDOG="RuntimeWatchdogSec=30s"
REBOOT_WATCHDOG="RebootWatchdogSec=60s"# 2. 修改 /etc/systemd/system.conf 文件
# 如果 RuntimeWatchdogSec 和 RebootWatchdogSec 存在且已注释,去掉注释并修改它们;如果不存在,则添加。# 修改 RuntimeWatchdogSec
if grep -q "^#RuntimeWatchdogSec=" /etc/systemd/system.conf; thensudo sed -i "s/^#RuntimeWatchdogSec=.*/$RUNTIME_WATCHDOG/" /etc/systemd/system.conf
elif grep -q "^RuntimeWatchdogSec=" /etc/systemd/system.conf; thensudo sed -i "s/^RuntimeWatchdogSec=.*/$RUNTIME_WATCHDOG/" /etc/systemd/system.conf
elseecho "$RUNTIME_WATCHDOG" | sudo tee -a /etc/systemd/system.conf
fi# 修改 RebootWatchdogSec
if grep -q "^#RebootWatchdogSec=" /etc/systemd/system.conf; thensudo sed -i "s/^#RebootWatchdogSec=.*/$REBOOT_WATCHDOG/" /etc/systemd/system.conf
elif grep -q "^RebootWatchdogSec=" /etc/systemd/system.conf; thensudo sed -i "s/^RebootWatchdogSec=.*/$REBOOT_WATCHDOG/" /etc/systemd/system.conf
elseecho "$REBOOT_WATCHDOG" | sudo tee -a /etc/systemd/system.conf
fi# 3. 重新加载 systemd 配置
sudo systemctl daemon-reload# 4. 提示用户脚本已完成并准备重启
echo "systemd watchdog settings updated. System will reboot in 5 seconds..."# 5. 等待并重启系统
sleep 5
sudo reboot
可以直接放置在系统启动脚本中,也可以第一次执行以后,放置在系统的某个配置文件中,方便后续的自动修改与维护。可以创建一个文件夹几种统一存放,而不是放在启动服务中,也还是只执行一次。
2. 设备树配置部分
设备树中搜索wdt可以看到位于rk3588s.dtsi文件中:
在包含rk3588s.dtsi文件的自定义配置设备树文件中使能即可
3. 看门狗 (Watchdog) 原理
看门狗通过不断地定期检查系统的健康状况来工作。具体来说,系统在正常工作时会定期“喂养”(或称“重置”)看门狗计时器,向看门狗发送一个“心跳信号”或“喂狗信号”。如果系统未能在规定时间内喂狗(即未能重置计时器),则看门狗认为系统已经出现故障,采取自动复位(重启)等措施。
3.1 工作机制
● 喂狗:当系统正常运行时,软件或硬件定期向看门狗发送“喂狗信号”。
● 超时:如果系统出现卡死、崩溃或其他异常,未能在规定时间内发送喂狗信号,则看门狗计时器会溢出。
● 复位或纠错:当看门狗计时器溢出时,它会触发一个复位信号,通常会让系统重启,恢复到一个已知的稳定状态。
4. 看门狗类型
看门狗可以分为两种类型:硬件看门狗和软件看门狗。
4.1 硬件看门狗
硬件看门狗是专门的硬件模块,在嵌入式系统中独立运行。其主要特点是:
● 独立性:硬件看门狗通常与系统主处理器分开工作,因此即使系统软件崩溃或卡死,硬件看门狗仍然能够发挥作用。
● 高可靠性:由于是独立的硬件模块,硬件看门狗不容易受到系统问题的影响。
● 自动复位:当系统没有按时喂狗时,硬件看门狗会自动发出复位信号,强制重启系统。
4.2 软件看门狗
软件看门狗是一种基于软件实现的机制,它依赖于操作系统和软件代码来定期检查和重置计时器。其特点是:
● 灵活性:软件看门狗可以根据实际需要进行灵活配置,可以与操作系统紧密集成。
● 受限性:如果系统的操作系统或关键任务发生问题,软件看门狗可能会失效,因为它依赖于系统的正常运行。