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

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

Ubuntu 的一个远程功能用于sudo -S -p '' halt关机,但无法正常工作。显示器打开并显示消息

将立即停止

[22225.11163] 已停止

sudo -S -p " halt 和有什么区别sudo shutdown now

答案1

在这种情况下, 和 开关不重要-S。下面是它们分别的作用。-psudo

-S开关使从 STDIN 读取密码。例如,这允许通过或sudo将密码传输到。sudoechocat

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


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

halt如果不使用开关调用该命令-p,则只会暂停操作系统并停止所有 CPU。一旦系统完全停止,用户就可以安全地手动按下计算机上的电源按钮。

poweroffshutdown -h now和命令halt -p都与单独执行的操作相同halt,同时还发送 ACPI 命令以向电源单元发出信号断开主电源。这样就无需手动按下计算机上的电源按钮。

答案2

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

摘自手册(man halt):“-p,--poweroff:指示 halt 命令改为按照 poweroff 的方式运行。”

就你的情况来说-p不是在命令中使用halt,因此你的计算机不是關閉電源。

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

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

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

答案3

有一个很好的答案Unix SE 站点关于shutdownvshalt问题:停止 (Halt) 和关闭 (Shutdown) 命令之间有什么区别?

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

例如,sudo <some_command>在运行此命令之前,运行将给出以下输出:

[sudo] 密码:

但跑步sudo -S -p '' <some_command>会隐藏该信息。

事实上,您在引号中输入的消息正在替换之前的消息。

继续尝试以下操作,看看有什么不同:

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

答案4

从用户意图来看,halt 命令和关机没有区别。细微的区别在于,halt 需要你方便地按下电源按钮才能关闭系统,而关机命令会自动指示高级配置电源接口 (ACPI) 向电源单元发送信号以关闭系统。

相关内容