您好,我是 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 发生了电源故障,而没有明确要求采取任何操作。)