systemd shutdown 当 -h 与 --halt 结合时是什么意思?

systemd shutdown 当 -h 与 --halt 结合时是什么意思?

systemd 关闭文档位于https://man7.org/linux/man-pages/man8/shutdown.8.html-h与 结合时含义会发生变化--halt,但没有详细说明,那么-h与 结合时是什么意思?和--halt有什么区别? 引用shutdown --haltshutdown --halt -h

  -h
      Equivalent to --poweroff, **unless --halt is specified.**
  -H, --halt
      Halt the machine.
  -P, --poweroff
      Power-off the machine (the default).

编辑:我抱怨过 systemd bugtracker 缺乏文档:https://github.com/systemd/systemd/issues/23401

答案1

“Halt” 是最初的操作;它会停止操作系统,但不会关闭电源,因为当时大多数计算机甚至没有软关机功能。然而,在 PC 中增加了这种功能后,在大多数 sysvinit 配置中,“halt” 等同于“poweroff”,即运行haltshutdown -h实际上会关闭整个系统。

使用 systemd 后,这两个操作再次分开,因此使用halt可以执行大部分关机过程,但机器开机,尽管完全没有响应(只是停留在“ System halted.”内核消息上)。要执行正常关机,您需要使用poweroff命令。

但要保留一些与可能被硬编码运行shutdown -h以关闭机器的程序(或手指)的兼容性,当使用该选项时,systemd 版本的“shutdown”实际上会PowerOff()向 systemd 发送一个调用,而不是一个Halt()调用。-h

tl;dr:shutdown -h将要求 systemd“关闭”,不是“停止”,但shutdown -h --halt实际上会要求它“停止”系统而不关闭电源。

相关内容