Linux: отключение от GUI против терминала

Здравствуйте, я новичок в Linux и не могу понять, выключается ли компьютер из GUI так же, как из терминала с командой:

выключение -P сейчас

PS При выключении процесс init получает какой-либо сигнал, такой как SIGPWR или SIGTERM, или он выключается по-другому? Надеюсь, вы можете помочь. Благодарю.

1 ответ

если выключение компьютера из GUI такое же, как из терминала с помощью команды:

Конечно, это зависит от графического интерфейса, но большую часть времени отправляется сообщение DBus, либо для непосредственной инициализации, либо для чего-то вроде 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, что произошел сбой питания, без явного запроса каких-либо действий.)

Другие вопросы по тегам