为什么不运行“ sudo shutdown now”关闭?


87

当我发出以下命令时:

sudo shutdown now

..我新调试的Ubuntu 14.04服务器未关闭。它以以下消息停止:

* Stopping System V runlevel compatibility
Give root password for maintenance:
(or type Control-D to continue):

如果输入root密码,则机器仅在shell提示符下坐在那里。



5
亲密的选民:这不是重复的。尽管问题类似,这是在询问有关特定命令的问题,另一种是从命令行关闭计算机的一般方法。
塞斯

Answers:


138

传统上,该命令sudo shutdown now会将您带到运行级别1(恢复模式);Upstart和SysV init都会发生这种情况。要获得所需的东西,即正确关闭计算机,您需要将-h开关拨到shutdown

这里要注意的一件事是,halt将关闭所有进程,关闭CPU,然后将控制返回到主板的ROM监视器,需要用户按下电源按钮以关闭电源,而poweroff在关闭CPU之后只需关闭电源即可正常关​​闭。

-h开关shutdown要么haltpoweroff电脑,这一决定将被系统采取虽然在Ubuntu的我已经看到,它通常会poweroff在机器。为确保这一点,您可以将-P开关shutdown用于poweroff计算机。

总而言之,以下是可用于poweroff而非 halt)计算机的命令:

sudo shutdown -h now
sudo shutdown -P now
sudo poweroff
sudo halt -p
sudo init 0

poweroffhalt命令基本上调用shutdown(除poweroff -f)。sudo poweroffsudo halt -p完全一样sudo shutdown -P now。该命令sudo init 0将带您进入运行级别0(shutdown)。

现在,如果要强制关闭,即不想等待进程正常关闭怎么办?在这种情况下,您可以使用:

sudo poweroff -f

这将不会使用shutdown。相反,它将调用reboot(2)系统调用(用于重新启动,关机和暂停)以立即关闭计算机电源。


2
或者,将关闭“现在”与“关闭sudo shutdown -P now
电源

3
“强制关机”是什么意思?根据手册页-f选项仅fsck在重新引导时跳过。根据Ubuntu的手册页,根本没有这样的选择。
Ruslan 2015年

1
@Ruslan:也许将其与halt -f/ 混淆poweroff -f,它绕过了init并直接告诉内核以减少功耗。那有力的。
grawity

1
我的笔记本电脑谢谢你!我实际上挂断了电话,只是一直使用电源按钮,但是现在我知道了!暂停使我的系统保持开机状态,但是关闭电源实际上可以关闭它的电源。非常感谢!:-)
Terrance

1
@RGG我建议您sync在此命令之前运行,因为此命令会绕过可能仍在缓存中的所有内容。 sync将强制将缓存的写操作写入磁盘,然后将其关闭电源。
Terrance

15

我非常确定正确的命令需要包含“ -h”选项(暂停)。尝试这个:

sudo shutdown -h now

6

从物理机无法自行关闭电源的时代开始,这就是一个遗产。例如,halt命令sudo halt终止所有程序并从RAM卸载几乎所有内容,准备将其关闭电源。但是,如果您运行sudo halt -p,它将执行所有操作,然后向系统发出关闭电源的信号,或者,在执行shutdown命令的情况下-a,尽管我个人使用,但我还是需要该选项halt


如果我总是使用此命令关闭计算机会怎样?
Nullpointer

-1

我一直使用以下

sudo shutdown -a now

或关机后立即重启

sudo shutdown -r now

看一下shutdown help选项,它没有列出-a作为正确的命令,但是我早就宣誓-a被中止或类似的事情。无论如何,我一直在使用它,并且这些年来一直有效,但是看起来shutdown -h现在是正确的选择。


1
也许您正在考虑Windows命令shutdown /a,该命令将中止关机(相当于shutdown -cUbuntu中的关机)。
deltab 2015年

@deltab是的,那一定是我当时所想的。奇怪的是,关机-a对我有用。
NPIC
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.