当我发出以下命令时:
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 -cUbuntu中的关机)。