語法:shutdown [選項] [時間] [警告信息]
-k:僅發送警告,不真正關機。-r:關機後重啟(shutdown -r now = reboot)。-h:關機不重啟(shutdown -h now = halt)。-f:快速重啟,跳過 fsck(fast reboot)。-n:不經 init 直接關機(不推薦,可能數據丟失)。-c:取消已排程的關機。機制:通知所有登錄用戶,凍結新登錄,發送 SIGTERM 給進程,隨後 SIGKILL,最後調用 init 0/6。僅 root 可用。
本質調用 shutdown -h。選項:
-w:僅寫 /var/log/wtmp 記錄,不關機。-d:不寫 wtmp。-f:強制關機,不調用 shutdown(危險)。-i:關機前關閉網絡接口。-p:默認,調用 poweroff 切斷電源。參數與 halt 類似,但觸發重啟而非停機。reboot -f 同樣繞過 shutdown 直接重啟。
init 為 PID 1 進程祖先。發送 SIGTERM 給 init 觸發運行級別切換:
init 0:關機(對應 runlevel 0)。init 6:重啟(對應 runlevel 6)。init 1:單用戶模式(維護模式),非重啟。shutdown 內部即通過 init 實現。
| 場景 | 推薦命令 | 原因 |
|---|---|---|
| 計劃性維護 | shutdown -h +10 "10分鐘後關機維護" | 通知用戶,緩衝時間 |
| 立即重啟 | shutdown -r now 或 reboot | 標準流程,數據安全 |
| 立即關機 | shutdown -h now 或 poweroff | 觸發 ACPI 斷電 |
| 單用戶救援 | init 1 | 最小服務啟動 |
| 強制重啟(死機) | reboot -f 或 Magic SysRq | 最後手段 |