強制重啟Linux系統的幾種方法


強制重啟Linux系統的幾種方法

實際生產環境中某些情況下 Linux 服務器系統在出現致命錯誤需要遠程進行重啟,通過常規的 rebootinit 6 等方法無法正常重啟(例如重啟時卡在驅動程序里等情況),這時就需要通過下面介紹的幾種特殊的方法進行強制重啟。

注意

下面這些強制重啟 Linux 的方法都是直接跳過 umount 文件系統及 sync 等操作,可能導致數據損壞,不在特殊情況下請勿使用。另外當然這些都是需要 root 超級用戶權限的哦。

reboot 命令

直接通過運行 reboot -nf 命令,這樣重啟時可以指定跳過 init 的處理和 sync 操作,這樣可以避免大多數情況下的問題。

magic SysRq key 方法

magic SysRq key 通過 proc 接口提供用戶直接發底層命令給 kernel 的功能,可以實現關機、重啟、宕機等操作,Linux kernel 需要開啟 CONFIG_MAGIC_SYSRQ 才可以支持 magic SysRq key。

運行下面兩條命令就可以直接強制重啟系統:

1
2
[root@localhost ~] # echo 1 > /proc/sys/kernel/sysrq
[root@localhost ~] # echo b > /proc/sysrq-trigger

相應的直接強制關機的命令:

1
2
[root@localhost ~] # echo 1 > /proc/sys/kernel/sysrq
[root@localhost ~] # echo o > /proc/sysrq-trigger

watchdog 方法

如果 Linux kernel 未開啟 magic SysRq key 或者不起作用,可以嘗試使用 watchdog 重啟方法。watchdog 通過監控數據輸入是否正常可以實現在系統出現異常時自動重啟系統,這里我們剛好可以借用的。

首先需要加載 watchdog 支持,這個和主板硬件設備有關,如果只需要軟件模擬的,可以運行:

1
[root@localhost ~] # modprobe softdog

命令加載軟件 watchdog 支持,接着再運行:

1
[root@localhost ~] # cat /dev/watchdog

命令,該命令會馬上退出並報錯,同時系統日志中就會提示:

1
softdog: Unexpected close, not stopping watchdog!

這就表示 watchdog 設備是被意外關閉的而不是正常停止的,大約等待 60 秒之后你就會發現 Linux 系統自動重啟了。Linux watchdog 的異常等待時間是通過 /proc/sys/kernel/watchdog_thresh 設置的,一般默認為 60 秒。

IPMI 方法

上面幾種方法都不能用?如果你的主板剛好支持 IPMI 管理接口的話,那可以直接通過 IPMI 實現硬件上的強制關機或重啟。

首先加載 IPMI 支持:

1
[root@localhost ~] # modprobe ipmi_msghandler ipmi_devintf ipmi_si

確認 IPMI 設備是否已找到:

1
[root@localhost ~] # ls -l /dev/ipmi*

如果輸出正常的話表示 IPMI 被正確加載了,接着安裝 ipmitool 管理工具。ipmitool 可以通過 IPMI 接口完成對本機或遠程主機的一系列管理操作。

這里我們就用直接電源管理的,重啟系統:

1
[root@localhost ~] # ipmitool power reset

運行完成后主機就會馬上重啟,相應的關閉主機可以運行命令:

1
[root@localhost ~] # ipmitool power off

ipmitool 還可以實現在系統未啟動時遠程查看監控主板硬件狀態等功能,在 IPMI 可用的情況下 ipmitool 還是比較方便好用的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM