如何使用Linux Watchdog实现自动重启系统
ZDNET AI··作者 Jack Wallen
关键信息
软件Watchdog使用`softdog`内核模块和`/dev/watchdog`设备节点监控系统健康状态;如果在超时时间(默认20秒)内未被‘踢’,就会触发重启。它适用于大多数Linux发行版,包括Ubuntu、Fedora和Arch。
资讯摘要
文章详细介绍了如何设置Linux Watchdog实用程序以自动重启冻结的系统。首先说明了可以通过apt、dnf或yay等包管理器安装Watchdog。安装后,用户必须加载softdog内核模块并验证/dev/watchdog的存在。
接着编辑/etc/watchdog.conf文件,启用关键选项如watchdog-device、interval和watchdog-timeout。配置完成后,使用systemctl启用服务使其在后台运行。这种设置确保即使机器挂起——例如在远程访问时——也能自我恢复,非常适合桌面和服务器环境。

资讯正文
我设置了这个Linux‘看门狗’,现在系统死机时会自动重启
如果你的Linux系统死机了,可能需要重新启动。借助一个小型应用程序,这可以自动化完成。Watchdog易于安装且免费使用。
我有几个连接到家庭实验室的Linux系统;其中一些是台式机,一些是服务器。99%的时间里,这些机器运行完美无缺。但当那1%的情况发生时,任何出现问题的机器都需要帮助。
一种解决方法就是使用一个名为Watchdog的小型软件包。这个软件会执行各种检查,判断硬件是否‘死机’。如果检测到这种情况,它就会重启机器。
Watchdog有两种类型:软件和硬件。硬件看门狗更可靠,但它需要专用硬件才能工作。软件看门狗可靠性稍差,但可以在大多数Linux系统上运行。
Watchdog的工作原理是:一个内核模块(softdog)配合Watchdog服务,通过倒计时定时器监视系统,并创建一个虚拟设备(/dev/watchdog)。
如果某个进程‘踢’了这个虚拟设备,计时器就会重置。
如果该设备没有被进程‘踢’,Watchdog就会重启系统。
理论上很简单,但底层实现要复杂得多。幸运的是,作为用户,你不需要深入研究就能理解Watchdog的基本原理。
尽管Watchdog对服务器尤其重要(特别是那些没有连接显示器、键盘或鼠标的情况),它对桌面系统也很有用。例如,假设你需要从办公室远程登录家里的Linux机器。如果那台机器死机了,你就无法访问它。但如果它装有Watchdog持续监控,就会自动重启,你就可以再次访问它。这非常方便。
你可能会觉得Watchdog设置起来很困难,但实际上并不难,即使你是刚开始接触Linux的新手。
让我来演示一下具体操作。
如何安装Watchdog
你需要准备:我将在运行Ubuntu 24.04的机器上演示。Watchdog存在于标准Ubuntu仓库中(Fedora仓库也有)。对于Arch用户,则需要用yay安装。
你还需要一个具有sudo权限的用户。
在Ubuntu上运行:
sudo apt-get install watchdog -y
如果是基于Fedora的机器:
sudo dnf install watchdog -y
对于Arch系统:
yay -S watchdog
然后加载模块:
sudo modprobe softdog
用以下命令验证模块是否已加载:
lsmod | grep softdog
如果看到softdog列出,说明已成功加载。
再检查设备节点是否存在:
ls -la /dev/watchdog
你现在就可以开始配置Watchdog了。
如何配置Watchdog
运行Watchdog后,你需要确保配置文件设置正确,以便在应该触发时真正发挥作用。这通过配置文件来完成。使用以下命令打开该文件:
sudo nano /etc/watchdog.conf
在该文件中查找以下行(它们在文件中并非连续出现):
# watchdog-device = /dev/watchdog
# interval = 1
# watchdog-timeout = 20
# Time in seconds before reboot
# realtime = yes
# priority = 1
# max-load-1 = 24
# max-load-5 = 18
# max-load-15 = 12
# min-memory = 1
你需要删除每行前面的 # 和空格。注意:如果找不到 watchdog-timeout = 20 这一行,请手动添加它。保存并关闭文件。
然后你需要使用以下命令启动并启用服务:
sudo systemctl enable --now watchdog
现在Watchdog已在后台运行,一旦系统出现问题,它就会自动执行任务。
另外:你可以在7个发行版上使用Linux 7.0——以下是你可以期待的内容。
如果你想测试Watchdog是否正常工作,可以通过以下三条命令手动触发内核崩溃:
sudo sysctl -w kernel.sysrq=1
sudo su -
echo c > /proc/sysrq-trigger
系统将变得无响应,而Watchdog应会重启它。
硬件方法
如果你恰好有一个硬件Watchdog,可以配置systemd来激活它并执行重启操作。以下是具体配置步骤。
使用以下命令打开systemd配置文件:
sudo nano /etc/systemd/system.conf
找到以下行:
#RuntimeWatchdogSec=0
#RebootWatchdogSec=10min
#WatchdogDevice=
将其修改为:
RuntimeWatchdogSec=30
RebootWatchdogSec=10min
WatchdogDevice=/dev/watchdog
保存并关闭文件。
另外:我的实用方法,无需升级内存即可加速Linux(而且免费)。
使用以下命令重新加载systemd守护进程:
sudo systemctl daemon-reload
这样就完成了。你现在拥有了一个监控系统的服务,一旦出现问题,它就会自动重启你的设备。
来源与参考
收录于 2026-04-23