Linux 提供多種關機/重啟指令,行為細節不同。本文系統整理 shutdown、reboot/halt/poweroff、systemctl、telinit 的差異、適用場景、排程用法與日誌追蹤,助你選擇最安全的操作方式。
| 指令 | 動作 | 通知使用者 | 執行層級 | 適用場景 |
|---|---|---|---|---|
| shutdown -h now | 關機 | 是 (廣播) | 0 | 生產環境標準關機 |
| shutdown -r now | 重啟 | 是 | 6 | 生產環境標準重啟 |
| shutdown -h +10 "維護" | 10 分鐘後關機 | 是 | 0 | 排程維護 |
| reboot | 重啟 | 否 | 6 | 單用戶/測試環境快速重啟 |
| halt / poweroff | 關機 | 否 | 0 | 單用戶/無使用者登入時 |
| systemctl reboot | 重啟 | 否 (systemd wall 除外) | 6 | systemd 系統統一管理 |
| systemctl poweroff | 關機 | 否 | 0 | systemd 系統統一管理 |
| telinit 6 / 0 | 重啟/關機 | 否 | 6/0 | 極簡環境/容器/舊版 SysVinit |
reboot(2) 系統呼叫,不發送警告,適合單用戶模式或自動化腳本 (搭配 --no-wall 抑制 systemd 廣播)。shutdown 邏輯,支援 --message 自訂廣播。# 今晚 23:30 重啟
shutdown -r 23:30 "夜間例行重啟"
# 30 分鐘後關機
shutdown -h +30 "30 分鐘後關機進行硬體維護"
# 取消排程
shutdown -c
# 查看最近重啟/關機記錄
last -x reboot
last -x shutdown
# journctl (systemd)
journalctl -b -1 -u systemd-shutdown # 上一次開機的關機日誌
journalctl --list-boots
shutdown -r/-h,給使用者緩衝時間。sync 確保快取寫入 (shutdown 內建)。systemctl reboot 或 shutdown,reboot 可能失效。systemctl list-units --state=active。# 系統死鎖無法正常關機,強制重啟 (Magic SysRq)
echo 1 > /proc/sys/kernel/sysrq
echo b > /proc/sysrq-trigger # 立即重啟,不同步磁碟
# 或組合鍵 Alt+SysRq+R E I S U B (依序)
選對指令、遵循流程,讓每一次重啟/關機都安全可控。
Linux Vim 安裝 YouCompleteMe 程式碼補全外掛:Vundle 管理、Python 支援編譯、Clangd 語義補全完整流程
Linux 打造 Ubuntu 風格 Tab 自動補全:安裝 bash-completion
打造極致輕量 IDE:tmux + Vim 終端機開發環境完整配置指南
CrunchBang Linux 恢復 Openbox 預設選單配置:一鍵修復 menu.xml
Linux 自訂 History 輸出格式:加入時間戳、用戶名、永久生效設定
Linux 用戶態進程死循環排查實戰:從 R 狀態 100% CPU 到 GDB 定位業務邏輯缺陷