這個簡單的 Linux 調整可以自動修復當機問題——而且對我完全免費
如果你的 Linux 電腦變得無回應,你可能會想考慮使用一個「看門狗」,它可以監控系統並在出現問題時重新啟動。
Linux-Terminal.com 的主要收穫
- 如果你的 Linux 系統當機了,可能需要重新啟動。
- 在一個小型應用的幫助下,這可以自動化。
- Watchdog 容易安裝且免費使用。
我在我的家庭實驗室裡有幾台 Linux 系統;有些是桌面電腦,有些是伺服器。九十九趴的時間裡,這些機器運行得非常順利。當那一趴發生問題時,任何出現故障的機器都需要幫助。
其中一種幫助的方法是通過一個名為 Watchdog 的小型軟體套件。這個軟體會執行各種檢查,以判斷硬體是否已經「鎖死」。如果它檢測到已經發生,它將重新啟動機器。
看門狗有兩種類型:軟體和硬體。硬體看門狗更可靠,但需要專門的硬體才能工作。軟體看門狗沒有那麼可靠,但它可以在大多數 Linux 系統上運行。
看門狗是如何運作的
一個核心模組(softdog)與看門狗服務一起,使用倒數計時器監控系統。
- 已創建一個虛擬設備 (/dev/watchdog)。
- 如果虛擬設備被某個進程「踢」一下,計時器會重置。
- 如果虛擬裝置沒有被某個程序「喚醒」,看門狗會重新啟動系統。
理論上很簡單,但其基礎原理要複雜得多。值得慶幸的是,作為使用者,你不需要深入挖掘就能理解 Watchdog 的大意。
雖然 Watchdog 對伺服器(特別是那些沒有連接顯示器、鍵盤或滑鼠的伺服器)來說可能是必需的,但它對桌面電腦也同樣有用。例如,假設你需要從工作地點登入家中網路上的 Linux 機器。如果該機器當機,你將無法存取它。如果該機器有 Watchdog 監控,它會重新啟動,屆時你就能存取它。
這可能非常方便。
你可能認為 Watchdog 很難設定,但你會驚訝地發現,即使你剛開始使用 Linux,它也不是那麼大的挑戰。
讓我來給你示範如何做。
如何安裝 Watchdog
你將需要的東西:我將在一台運行 Ubuntu 24.04 的機器上演示這個操作。Watchdog 可以在標準的 Ubuntu 軟體庫中找到(以及 Fedora 的標準軟體庫中)。對於 Arch 使用者,你需要使用 yay 來安裝這個軟體。你還需要一個具有 sudo 權限的使用者。
1. 安裝看門狗
首先要做的是安裝 Watchdog,這可以通過以下命令完成:
sudo apt-get install watchdog -y
如果你使用的是基於 Fedora 的機器,指令是:
sudo dnf 安裝 watchdog -y
對於 Arch,它是:
yay -S watchdog
2. 載入核心模組
安裝 Watchdog 後,您接著需要載入 softdog 核心模組,可以使用以下方式進行:
sudo modprobe softdog
使用以下方式確認模組已載入:
lsmod | grep softdog
如果你看到 softdog 被列出,表示它已成功加載。
確認裝置節點是否存在,方法如下:
ls -la /dev/watchdog
3. 在啟動時載入模組
你還需要在啟動時載入 Watchdog 核心模組。如果你不這麼做,服務在重新啟動後不會運行(所以它不會監控系統)。這可以透過以下方式完成:
請確保正確輸入此指令。
你現在已經準備好配置 Watchdog。
如何配置看門狗
在 Watchdog 運行時,你會想要確保配置文件已設置好,以便在應該執行時它能真正完成應做的事情。這是透過配置文件來完成的。使用以下命令打開該文件:
sudo nano /etc/watchdog.conf
在該檔案中,尋找以下幾行(它們在檔案中不是連續出現的):
# watchdog-device=/dev/watchdog
# 間隔=1
# watchdog-timeout=20 # 重啟前的秒數
# 實時=是
# 優先順序=1
# 最大負載-1=24
# 最大負載-5=18
# 最大負載-15=12
# 最小記憶體=1
你需要做的是移除每行前面的 # 和空格。注意:如果你沒有看到 watchdog-timeout=20 這一行,請手動添加它。
保存並關閉檔案。
接下來,您需要使用以下命令啟動並啟用服務:
sudo systemctl enable --now watchdog
監控程式現在正在背景運行,如果出現問題,它會執行相應的操作。
如果你想測試 Watchdog 是否正在運作,你可以使用以下三個命令手動引發核心恐慌:
sudo sysctl -w kernel.sysrq=1
sudo su -
echo c > /proc/sysrq-trigger
系統將變得無法響應,且看門狗應該重新啟動它。
硬體方法
如果你碰巧有硬體看門狗,可以配置 systemd 來觸發它並執行重新啟動。以下是如何配置的方法。
使用以下指令打開 systemd 配置文件:
sudo nano /etc/systemd/system.conf
定位以下行:
#RuntimeWatchdogSec=0
#重啟監控秒數=10分鐘
#看門狗裝置=
將那些行改成:
RuntimeWatchdogSec=30
重啟監控計時器秒數=10分鐘
看門狗裝置=/dev/watchdog
保存並關閉檔案。
使用以下命令重新啟動 systemd 守護進程:
sudo systemctl daemon-reload
就這樣。你現在有一個服務在監控你的系統,如果出現問題,它會重新啟動系統。

