Linux:从 GUI 关机与从终端关机

Linux:从 GUI 关机与从终端关机

您好,我是 Linux 新手,无法弄清楚从 GUI 关闭计算机是否与从终端使用命令关闭计算机相同:

立即关机-P

附言 关闭时,init 进程是否收到任何信号(如 SIGPWR 或 SIGTERM)或者以不同方式关闭?希望您能提供帮助。谢谢。

答案1

如果从 GUI 关闭计算机与从终端使用命令关闭计算机相同:

当然,这取决于 GUI,但大多数情况下都会发送 DBus 消息,要么直接发送给 init,要么发送给 ConsoleKit / systemd-logind 之类的东西。

虽然这两种方法最终都会告诉 init 启动关机过程,但它们主要在使用的授权类型上有所不同,例如,任何登录控制台的用户都可以通过 systemd-logind 启动关机,而该shutdown命令通常仅限 root 用户使用。

(但 并不适用systemctl poweroff,因为它比 更像 GUI 机制shutdown。)

init 进程是否收到任何信号(如 SIGPWR 或 SIGTERM)或者以不同方式关闭?希望您能提供帮助。谢谢。

当然,这取决于初始化系统,但大多数时候都会发送 IPC 消息,要么通过 D-Bus,要么通过普通 Unix 套接字,要么通过命名管道。

  • systemd 有 D-Bus 和/run/systemd/private作为后备;

  • Upstart 有 D-Bus,而且显然/run/initctl也有;

  • SysV init 有时/dev/initctl/etc/.initctl最近/run/initctl

(SIGPWR 具有不同的含义 - 它仅通知 init 发生了电源故障,而没有明确要求采取任何操作。)

相关内容