自从在树莓派上运行 OpenClaw 以来,树莓派就经常出现死机的情况。
主要原因不难理解,运行单个 Agent 的时候,还算稳定。一旦并行运行多个 Agent,CPU 或者内存瞬间就被拉爆,直接导致树莓派宕机。
人在家还好,出门在外就很尴尬。于是让 OpenClaw 自行解决这个问题,又学到新东西 —— 硬件看门狗(Watchdog)。
树莓派自身内置看门狗硬件,运行原理很简单:系统正常运行时会定期向硬件发送一个“心跳”信号。如果 CPU 过载或系统内核卡死,无法在规定时间内发送这个信号,看门狗硬件就会认为系统已宕机,并强制切断电源或触发硬件重启。
启用步骤如下:
- 修改引导配置文件,激活硬件支持
# 这是新版系统的配置文件
sudo vim /etc/systemd/system.conf
- 取消以下行的注释并配置时效
# 如果内核 30 秒没反应,就强制重启
RuntimeWatchdogSec=30
# 关机过程如果 5 分钟没反应,就强制重启
RebootWatchdogSec=5min
- 保存配置,使配置生效
sudo systemctl daemon-reexec
- 验证看门狗运行状态
journalctl -b | grep watchdog
输出结果通常为:
Apr 06 14:26:10 mor kernel: bcm2835-wdt bcm2835-wdt: Broadcom BCM2835 watchdog timer
Apr 06 15:11:23 mor systemd[1]: Using hardware watchdog 'Broadcom BCM2835 Watchdog timer', version 0, device /dev/watchdog0
从此,告别手动拔插电源。