實際生產環境中某些情況下 linux 伺服器系統在出現致命錯誤需要遠端進行重啟,通過常規的reboot
、init 6
等方法無法正常重啟(例如重啟時卡在驅動程式裡等情況),這時就需要通過下面介紹的幾種特殊的方法進行強制重啟。
注意直接通過執行下面這些強制重啟 linux 的方法都是直接跳過 umount 檔案系統及 sync 等操作,可能導致資料損壞,不在特殊情況下請勿使用。另外當然這些都是需要 root 超級使用者許可權的哦。
reboot -nf
命令,這樣重啟時可以指定跳過 init 的處理和 sync 操作,這樣可以避免大多數情況下的問題。
magic sysrq key 通過 proc 介面提供使用者直接發底層命令給 kernel 的功能,可以實現關機、重啟、宕機等操作,linux kernel 需要開啟config_magic_sysrq
才可以支援 magic sysrq key。
執行下面兩條命令就可以直接強制重啟系統:12
[root@localhost ~]
# echo 1 > /proc/sys/kernel/sysrq
[root@localhost ~]
# echo b > /proc/sysrq-trigger
相應的直接強制關機的命令:12
[root@localhost ~]
# echo 1 > /proc/sys/kernel/sysrq
[root@localhost ~]
# echo o > /proc/sysrq-trigger
如果 linux kernel 未開啟 magic sysrq key 或者不起作用,可以嘗試使用 watchdog 重啟方法。watchdog 通過監控資料輸入是否正常可以實現在系統出現異常時自動重啟系統,這裡我們剛好可以借用的。
首先需要載入 watchdog 支援,這個和主機板硬體裝置有關,如果只需要軟體模擬的,可以執行:
1[root@localhost ~]
# modprobe softdog
命令載入軟體 watchdog 支援,接著再執行:
1[root@localhost ~]
# cat /dev/watchdog
1softdog: unexpected close, not stopping watchdog!
這就表示 watchdog 裝置是被意外關閉的而不是正常停止的,大約等待 60 秒之後你就會發現 linux 系統自動重啟了。linux watchdog 的異常等待時間是通過/proc/sys/kernel/watchdog_thresh
設定的,一般預設為 60 秒。
上面幾種方法都不能用?如果你的主機板剛好支援 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
還是比較方便好用的。
強制重啟Linux系統的幾種方法
實際生產環境中某些情況下 linux 伺服器系統在出現致命錯誤需要遠端進行重啟,通過常規的reboot init 6等方法無法正常重啟 例如重啟時卡在驅動程式裡等情況 這時就需要通過下面介紹的幾種特殊的方法進行強制重啟。注意 下面這些強制重啟 linux 的方法都是直接跳過 umount 檔案系統及...
Linux幾種關機 重啟 相關命令
linux幾種關機 重啟 相關命令 在linux下一些常用的關機 重啟命令有shutdown halt reboot 及init,它們都可以達到重啟系統的目的,但每個命令的內部工作過程是不同的,通過本文的介紹,希望你可以更加靈活的運用各種關機命令。1.shutdown shutdown命令安全地將系...
遠端重啟linux主機的幾種方法
自 方法一,在終端上利用ssh,不登入遠端主機,直接傳送重啟命令 ssh root 192.168.8.128 reboot 方法二,在終端上利用ssh和here document ssh root 192.168.8.128 bash ssh root 192.168.8.128 bash tes...