我還沒有找到該命令的兩個選項之間差異的明確答案shutdown
。
halt
與 相同 與shutdown -H
與poweroff
相同嗎shutdown -P
?
答案1
這有點歷史了。
halt
在 ACPI 之前使用(今天將為您關閉電源)*。它會停止系統,然後列印一條訊息,大意是「現在可以關閉電源了」。當時有實體開關,而不是現代電腦的組合 ACPI 控制電源按鈕。
poweroff
,自然會停止系統,然後呼叫 ACPI power off。
* 現在halt
已經足夠智能,poweroff
如果啟用了 ACPI,就會自動呼叫。事實上,它們現在在功能上是等效的。
答案2
它們不是同一件事,只是非常密切相關。在實踐中,除非您想指定關閉的特定時間或強制立即不乾淨的重新啟動/停止/斷電,否則無論您運行shutdown -h
還是halt
...或shutdown -r
vs 都並不重要reboot
。過去事情並不是那麼方便,但這就是現在的工作方式(許多歧義或用戶錯誤的機會已被刪除/消除)。
/sbin/shutdown
做很多「清理」工作,例如通知用戶,在系統關閉時阻止新的登入。它還可以被告知在某個時間或 XX 分鐘內關閉系統 - 經常警告登入用戶即將關閉。
它還將運行等級更改為0
( halt
/ poweroff
) 或6
( reboot
),這會觸發系統停止正在運行的服務、卸載磁碟等,為實際的停止、斷電或重新啟動做好準備。
當所有這些完成後,它會調用/sbin/halt
、/sbin/reboot
或/sbin/poweroff
(reboot
和poweroff
通常是 的符號鏈接halt
,將它們分別解釋為halt -r
和halt -P
)。
但請注意,如果halt
//reboot
在poweroff
系統不在運行層級時被調用0
,6
那麼它們將調用shutdown
來完成其工作,除非使用-f
或選項。force
(如何解釋運行級別的詳細資訊可能因發行版而異,但0
和 的6
使用方式如 Debian 和 Debian 衍生品(如 Ubuntu)中所述)。
shutdown
請參閱和的手冊頁以halt
獲取更多資訊。
halt
最後,狀態和狀態之間的區別poweroff
在於,它halt
會執行所有操作,直到實際關閉機器電源(在某些類型的硬體上,這意味著它會進入ROM 引導程式或類似的程式。在大多數PC在硬體上,它只是停止),同時poweroff
完成最後一步和關閉。 reboot
當然,會進入暫停狀態,然後重新啟動電腦。
順便說一句,預設值通常是poweroff
或reboot
,但您可以使用-H
作為參數來shutdown
使其停止。這在基於 PC 的 Linux 機器上不是很有用(但在具有韌體啟動監視器的機器上很有用,例如 sparc 機器。它可能在具有 EFI 命令列的較新機器上變得有用)。