Linux 系統雖以穩定著稱,但正確的關機/重啟操作對資料完整性至關重要。不同於 Windows 的圖形化關機,Linux 透過命令列實現優雅關機,涉及快取同步、進程終止、檔案系統卸載等多個階段。本文系統整理 shutdown、reboot、halt、poweroff、init 五大命令的參數、流程、實戰範例與關機前檢查清單,助你避免資料損壞、服務中斷等風險。
| 命令 | 常用參數 | 說明 |
|---|---|---|
shutdown | -h | 關機(halt) |
-r | 重啟(reboot) | |
-k | 僅發送警告訊息,不實際關機 | |
-c | 取消已排程的關機 | |
-t 秒數 | 警告訊息與實際關機間的延遲秒數 | |
時間 | now、+分鐘、HH:MM(24制) | |
reboot/halt/poweroff | -n | 關機前不同步磁碟快取(危險) |
-w | 僅寫入 wtmp 記錄,不關機 | |
-d | 不寫入 wtmp 記錄 | |
-f | 強制關機/重啟,不經 init(危險) | |
-i | 關閉所有網路介面 | |
-p | 關機時切斷電源(需硬體支援) | |
-h | 讓硬碟進入待機模式 | |
init | 0 | 切換至執行等級 0(關機) |
6 | 切換至執行等級 6(重啟) |
sync() 將記憶體髒頁刷入磁碟,確保資料不遺失。/var/run/utmp、/var/log/wtmp 寫入關機/重啟記錄。SIGTERM → 等待 → SIGKILL 強制結束所有用戶進程。poweroff)或重設 CPU(reboot)。警告:直接拔電或使用 -f 強制參數會跳過步驟 1、4,極易導致檔案系統損壞、資料庫損毀。
# 立即關機(最常用)
shutdown -h now
# 2:30 定時關機,廣播訊息
shutdown -h 02:30 '系統維護,請儲存工作'
# 透過 init 關機
init 0
# 立即關機並切斷電源
halt -p
poweroff
# 立即重啟
shutdown -r now
reboot
init 6
# 10 分鐘後重啟
shutdown -r +10 '例行維護重啟'
# 延遲 5 秒發送警告後重啟
shutdown -t5 -r now
# 僅發警告不重啟(測試廣播)
shutdown -k now '測試廣播'
# 取消排程關機/重啟
shutdown -c
| 檢查項目 | 命令 | 目的 |
|---|---|---|
| 線上用戶 | who / w | 確認無活躍業務操作 |
| 網路連線 | netstat -an / ss -an | 確認無關鍵傳輸、資料庫連線 |
| 背景進程 | ps aux / systemctl list-units --state=running | 確認無長時間任務(備份、編譯等) |
| 廣播通知 | shutdown -k +30 '30分鐘後重啟' | 給用戶緩衝時間 |
| 手動同步 | sync; sync; sync | 雙重保險刷入快取 |