網站搜尋

這個簡單的 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

就這樣。你現在有一個服務在監控你的系統,如果出現問題,它會重新啟動系統。