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

Jon*_*age 95 command-line shutdown

当我发出以下内容时:

sudo shutdown now
Run Code Online (Sandbox Code Playgroud)

..我新调试的 Ubuntu 14.04 服务器没有关闭。它停止并显示以下消息:

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

如果我输入 root 密码,机器就会在 shell 提示符下停留在那里。

hee*_*ayl 149

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

这里需要注意的一件事是,halt将关闭所有进程,关闭 CPU 并将控制权返回给主板的 ROM 监视器,需要用户按下电源按钮关闭电源,而poweroff在关闭 CPU 之后将简单地关闭电源导致正常关闭。

意志或计算机的-h切换,shutdown将由系统做出决定,尽管在 Ubuntu 中我已经看到它通常是机器。可以肯定的是,你可以使用带开关到计算机。haltpoweroffpoweroff-Pshutdownpoweroff

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

sudo shutdown -h now
sudo shutdown -P now
sudo poweroff
sudo halt -p
sudo init 0
Run Code Online (Sandbox Code Playgroud)

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

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

sudo poweroff -f
Run Code Online (Sandbox Code Playgroud)

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

  • “强行关闭”是什么意思?根据 [手册页](http://unixhelp.ed.ac.uk/CGI/man-cgi?shutdown+8),`-f` 选项只是在重启时跳过 `fsck`。根据 Ubuntu 的手册页,根本没有这样的选项。 (3认同)
  • 或者,将关闭 'now' 与 'poweroff' 结合起来:**`sudo shutdown -P now`** (2认同)

pil*_*842 16

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

sudo shutdown -h now
Run Code Online (Sandbox Code Playgroud)


小智 6

这是物理机无法自行断电的时代遗留下来的遗产。例如,halt 命令会sudo halt终止所有程序并从 RAM 中卸载几乎所有内容,准备关闭电源。但是,如果您运行sudo halt -p,它将完成所有这些,然后发出信号关闭系统,或者在shutdown命令的情况下,您需要该-a选项,我相信,尽管我个人使用halt.