Linux 提供 shutdown、halt、reboot 三大關機/重啟指令,參數豐富且行為略有差異。本文系統整理參數對照、權限需求、常見失敗原因 (如一般用戶無權限、需 su - 切換 root) 與生產環境建議流程。

| 參數 | 說明 |
|---|---|
| -h | 關機並切斷電源 (Halt) |
| -r | 重新開機 (Reboot) |
| -c | 取消已排程的關機 |
| -k | 僅發送警告訊息,不實際關機 |
| -t 秒 | 延遲秒數後執行 |
| 時間 | 指定時間 (hh:mm / +m / now) |
| -f | 重啟時跳過 fsck |
| -F | 重啟時強制 fsck |
| -n | 不經 init 直接關機 (不建議) |
# 立即關機
shutdown -h now
# 10 分鐘後重啟並通知使用者
shutdown -r +10 "系統維護,10 分鐘後重啟"
# 取消排程
shutdown -c
# 定時關機 (23:30)
shutdown -h 23:30
一般使用者執行 shutdown 會提示 command not found 或權限不足。正確流程:
su - root
# 輸入 root 密碼
shutdown -h now
su - (帶減號) 會載入 root 環境變數 (含 /sbin 路徑),su 不帶減號則保留原環境,可能找不到指令。
halt # 等同 shutdown -h
halt -p # 關機並切斷電源 (預設)
halt -f # 強制關機,不經 shutdown (緊急時使用)
halt -w # 僅寫入 /var/log/wtmp,不關機
reboot # 正常重啟
reboot -f # 強制重啟,不經 shutdown
reboot -w # 僅寫入 wtmp 記錄
reboot -i # 關閉網路介面後重啟
若 runlevel 為 0 或 6 直接重啟,否則透過 shutdown -r 執行。
| 操作 | systemd 指令 | 傳統指令 |
|---|---|---|
| 關機 | systemctl poweroff | shutdown -h now |
| 重啟 | systemctl reboot | shutdown -r now |
| 暫停 | systemctl suspend | - |
| 休眠 | systemctl hibernate | - |
| 混合睡眠 | systemctl hybrid-sleep | - |