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