当我发出以下命令时:
sudo shutdown now
..我新调试的Ubuntu 14.04服务器未关闭。它以以下消息停止:
* Stopping System V runlevel compatibility
Give root password for maintenance:
(or type Control-D to continue):
如果输入root密码,则机器仅在shell提示符下坐在那里。
当我发出以下命令时:
sudo shutdown now
..我新调试的Ubuntu 14.04服务器未关闭。它以以下消息停止:
* Stopping System V runlevel compatibility
Give root password for maintenance:
(or type Control-D to continue):
如果输入root密码,则机器仅在shell提示符下坐在那里。
Answers:
传统上,该命令sudo shutdown now
会将您带到运行级别1(恢复模式);Upstart和SysV init都会发生这种情况。要获得所需的东西,即正确关闭计算机,您需要将-h
开关拨到shutdown
。
这里要注意的一件事是,halt
将关闭所有进程,关闭CPU,然后将控制返回到主板的ROM监视器,需要用户按下电源按钮以关闭电源,而poweroff
在关闭CPU之后只需关闭电源即可正常关闭。
该-h
开关shutdown
要么halt
或poweroff
电脑,这一决定将被系统采取虽然在Ubuntu的我已经看到,它通常会poweroff
在机器。为确保这一点,您可以将-P
开关shutdown
用于poweroff
计算机。
总而言之,以下是可用于poweroff
(而非 halt
)计算机的命令:
sudo shutdown -h now
sudo shutdown -P now
sudo poweroff
sudo halt -p
sudo init 0
的poweroff
和halt
命令基本上调用shutdown
(除poweroff -f
)。sudo poweroff
和sudo halt -p
完全一样sudo shutdown -P now
。该命令sudo init 0
将带您进入运行级别0(shutdown)。
现在,如果要强制关闭,即不想等待进程正常关闭怎么办?在这种情况下,您可以使用:
sudo poweroff -f
这将不会使用shutdown
。相反,它将调用reboot(2)
系统调用(用于重新启动,关机和暂停)以立即关闭计算机电源。
sudo shutdown -P now
halt -f
/ 混淆poweroff -f
,它绕过了init并直接告诉内核以减少功耗。那是有力的。
sync
在此命令之前运行,因为此命令会绕过可能仍在缓存中的所有内容。 sync
将强制将缓存的写操作写入磁盘,然后将其关闭电源。
从物理机无法自行关闭电源的时代开始,这就是一个遗产。例如,halt命令sudo halt
终止所有程序并从RAM卸载几乎所有内容,准备将其关闭电源。但是,如果您运行sudo halt -p
,它将执行所有操作,然后向系统发出关闭电源的信号,或者,在执行shutdown
命令的情况下-a
,尽管我个人使用,但我还是需要该选项halt
。
我一直使用以下
sudo shutdown -a now
或关机后立即重启
sudo shutdown -r now
看一下shutdown help选项,它没有列出-a作为正确的命令,但是我早就宣誓-a被中止或类似的事情。无论如何,我一直在使用它,并且这些年来一直有效,但是看起来shutdown -h现在是正确的选择。
shutdown /a
,该命令将中止关机(相当于shutdown -c
Ubuntu中的关机)。