“停止”和“立即关闭”之间的区别?

Ubuntu一个远程使用sudo -S -p '' halt关闭,并且无法工作到最后。 留下监视器与消息

现在将停止

[22225.11163]停止了

sudo -S -p " haltsudo shutdown now什么区别?

在这种情况下, sudo-S-p开关并不重要。 这是他们分别做的事情。

-S开关导致sudo从STDIN读取密码。 例如,这允许通过echocat将密码管道传递给sudo

-p开关允许您覆盖默认密码提示并使用自定义密码提示,或者根本不使用。


重要的区别在于sudo发布的两个命令。

如果在没有-p开关的情况下调用halt命令,则只需停止操作系统并停止所有CPU。 一旦系统完全停止,用户可以安全地手动点击他的计算机上的电源按钮。

poweroffshutdown -h nowhalt -p命令都与单独halt一样,同时另外发送ACPI命令以通知电源单元断开主电源。 这可以防止您必须物理按下计算机上的电源按钮。

halt不是shutdown ,它们是不同的命令。 除非使用-p选项,否则前者不会关闭电源

从手册( man halt ): “ – p, – poweroff:指示halt命令反而表现为poweroff。”

并且,在您的情况下, -p halt命令中使用,因此您的计算机关闭电源。

不要将这个-p与sudo的一个混淆,它是不同命令的不同参数。 来自man sudo

  • -S -st(stdin)选项使sudo从标准输入而不是终端设备读取密码。 密码必须后跟换行符。
  • -p prompt -p(prompt)选项允许您覆盖默认密码提示并使用自定义密码提示。

在你的情况下, prompt为空(在询问密码时没有为sudo显示消息),-S使sudo接受root密码vi stdin(因此可以使用管道提供密码并从其他命令重定向而不是键入)

关于shutdownhalt问题, Unix SE站点有一个很好的答案: Halt和Shutdown命令有什么区别?

至于sudo -S -p ''部分,这将删除有关在终端中询问密码的消息(您仍然输入密码)

例如,运行sudo 将在运行此命令之前提供此输出:

[sudo]密码:

但是运行sudo -S -p '' 将隐藏该消息。

实际上,您在引号中添加的消息正在替换先前的消息。

继续尝试以下内容,看看差异:

  sudo -S -p 'Hey, I am a custom message.' ls 

就用户意图而言,halt命令和关闭之间没有区别。 细微差别在于,在停止时您必须方便地按下电源按钮以关闭系统,而在shutdown命令中,它将自动指示高级配置电源接口(ACPI)向电源单元发送信号以关闭系统。