停止与“ shutdown -H”相同,关机与“ shutdown -P”相同吗?


Answers:


26

这有点历史。

halt在ACPI之前使用(今天将为您关闭电源)*。它将停止系统,然后打印一条消息,提示“现在可以关闭电源”。那时有物理开/关开关,而不是现代计算机的组合ACPI控制的电源按钮。

poweroff,自然会暂停系统,然后关闭ACPI电源。

*这些天halt足够聪明,poweroff如果启用了ACPI,则可以自动呼叫。实际上,它们现在在功能上是等效的。


有趣:在运行Gentoo的笔记本电脑上,/sbin/poweroff是的符号链接/sbin/halt
phunehehe 2012年

谢谢,巴哈马特!我说的是命令的两个选项shutdown。命令halt是否与shutdown -H和命令poweroff相同shutdown -P?@phunehehe也是。
2012年

@phunehehe:是的,我很确定他们现在是相同的,但是没有理会它们。
bahamat 2012年

@Tim:是的,这些标志与调用命令相同。就像我说的,这几乎是历史差异。
bahamat 2012年

1
过去,halt过去只是这样做。没有有序的关机,只需停止机器就此进行的操作。经常发出sync;sync;sync;halt确保所有缓冲区都已写出到磁盘的问题。
kurtm

15

它们不是同一件事,只是密切相关。实际上,除非您要指定特定的关闭时间或强制立即执行不干净的重启/停止/关闭电源,否则运行shutdown -h还是halt...或shutdown -rvs 都没有关系reboot。过去,事情并没有那么方便,但这就是现在的工作方式(消除了很多歧义或用户错误的机会)。

/sbin/shutdown会进行很多“清理”工作,例如通知用户,在系统关闭时阻止新的登录。还可以告诉它在特定时间或XX分钟内关闭系统-经常警告即将登录的用户即将关闭。

它还将运行级别更改为0halt/ poweroff)或6reboot),从而触发系统停止正在运行的服务,卸载磁盘等,以准备实际的停止,关机或重新引导。

完成所有操作后,它将调用/sbin/halt/sbin/reboot/sbin/poweroffreboot并且poweroff通常是的符号链接halt,分别将它们解释为halt -rhalt -P

但是请注意,如果halt/ reboot/ poweroff当系统没有在runlevel被称为0还是6那么他们会打电话shutdown来完成其工作,除非-fforce选项被使用。

(如何运行级别被解释可以从发行到发行变化,但细节06如这里所描述的Debian和Debian的衍生物如Ubuntu的使用)。

请参阅手册页shutdownhalt获取更多信息。

最后,状态haltpoweroff状态之间的区别在于,它可以halt完成所有的工作,直到真正关闭机器电源(在某些硬件上,这意味着它会落入ROM引导加载程序或类似程序中。在大多数PC硬件上,它只会停止),同时poweroff完成最后一步并关闭。 reboot,当然会进入暂停状态,然后重新启动计算机。

顺便说一句,默认值通常是poweroffreboot,但是您可以使用-H参数shutdown来使其暂停。这在基于PC的linux机器上不是很有用(但是在具有固件启动监视器的机器(如sparc机器)上很有用。它可能会在具有EFI命令行的较新机器上变得有用)。


1
这是对非操作系统特定问题的高度以Linux为中心的答案。并非所有shutdown命令都具有运行级别的概念。 shutdown大多调用halt/ reboot/ poweroff; 具有讽刺意味的是,在一些非Linux系统上,这种接受的智慧至今仍然存在。并且符号链接指向的地方不一定halt; 不仅如此,在某些工具集中它们根本不是符号链接。有关更多详细信息,请参见unix.stackexchange.com/a/196471/5132
JdeBP 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.