我还没有找到该命令的两个选项之间差异的明确答案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 命令行的较新机器上变得有用)。