Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學

Linux halt 指令參數完整解析:關機、重開機、不寫入紀錄、強制關機等進階用法

編輯:XP 系統應用技巧

halt 是 Linux 系統關機指令之一,會依目前 runlevel 決定行為:若為 0 或 6 則直接關機/重啟,否則呼叫 shutdown -h。本文詳細說明所有參數、範例、與 shutdown/reboot/init 的差異比較,助您靈活掌握關機操作。

指令語法與權限

halt [-n] [-w] [-d] [-f] [-i] [-p]
  • 權限:需 root(系統管理者)執行
  • 核心邏輯:檢查 runlevel → 0/6 直接關機/重啟 → 其他呼叫 shutdown -h
halt 指令說明示意

參數詳細說明

參數功能適用場景
-n關機前不執行 sync(不將記憶體資料寫回硬碟)fsck 修復根分區後,防止舊超級區塊覆蓋修復結果
-w不真正關機,僅在 /var/log/wtmp 寫入關機紀錄測試腳本、偽裝關機紀錄
-d不寫入 /var/log/wtmp 紀錄(-n 隱含此意)不想留下關機紀錄
-f強制關機,不呼叫 shutdown,直接殺進程、sync、停止核心系統掛死無法正常關機、緊急情況
-i關機前先停止所有網路介面網路儲存/叢集環境、避免資料損毀
-p關機時順便執行 poweroff(切斷電源,預設行為)實體機關機、虛擬機關機並釋放資源

常用範例

# 正常關機並切斷電源(最常用)
halt -p
# 或直接
halt

# 關機但不留下 wtmp 紀錄
halt -d

# 強制關機(系統無回應時)
halt -f

# 僅寫入紀錄不關機(測試用)
halt -w

Linux 常用關機/重啟指令深度比較

指令核心機制特點典型用法
shutdown送信號給 init 改變 runlevel安全、通知登入用戶、可排程、可取消shutdown -h now 立即關機
shutdown -r +10 10 分鐘後重啟
shutdown -c 取消排程
halt呼叫 shutdown -h 或直接停止核心最簡單關機指令、參數控制細節行為halt -p 關機斷電
halt -f 強制關機
reboot類似 halt 但觸發重啟參數與 halt 幾乎相同reboot 重啟
reboot -f 強制重啟
init 0/6直接切換 runlevel 0(關機)/6(重啟)最底層、不通知用戶、立即生效init 0 關機
init 6 重啟
poweroffsystemd/sysvinit 關機並斷電現代系統預設關機指令poweroff

shutdown 關鍵參數補充

參數說明
-t 秒數切換 runlevel 前等待秒數
-r重啟而非關機
-k僅發送警告訊息,不真正關機
-h關機並斷電
-n不經 init 直接關機(不建議)
-c取消目前關機排程
-f重啟時跳過 fsck
-F重啟時強制 fsck
-time設定關機時間(如 22:00、+10)

進階:/etc/inittab 與 runlevel 關係

  • id:3:initdefault: → 預設進入 runlevel 3(多使用者文字模式)
  • l0:0:wait:/etc/rc.d/rc 0 → runlevel 0 執行關機腳本
  • l6:6:wait:/etc/rc.d/rc 6 → runlevel 6 執行重啟腳本
  • 查看 /etc/inittab 可知各 runlevel 具體執行動作

最佳實務建議

  1. 日常管理:shutdown -h now 或 poweroff(安全、通知用戶、正常結束服務)。
  2. 系統掛死:halt -f 或 reboot -f(強制、可能造成檔案系統損壞,重啟後會自動 fsck)。
  3. 排程維護:shutdown -h 23:00(指定時間)、shutdown -r +30 "系統維護"(延遲並廣播訊息)。
  4. 虛擬機/雲端:優先使用客體作業系統指令(shutdown/poweroff),避免直接從宿主機硬關機(相當於拔電源)。
Copyright © Windows教程網 All Rights Reserved