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

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

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

1 ответ1

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, что произошел сбой питания, без явного запроса каких-либо действий.)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .