GNOME адаптирован для управления через systemd

2 октября 2019 года

Бенджамин Берг ( Benjamin Berg), один из инженеров Red Hat, занимающийся разработкой GNOME, обобщил результаты работы по переводу GNOME на управление сеансами исключительно средствами systemd, без применения процесса gnome-session.

Для управления входом в GNOME уже достаточно давно применяется systemd-logind, который отслеживает состояния сеансов в привязке к пользователю, управляет идентификаторами сеансов, отвечает за переключение между активными сеансами, координирует многопользовательские окружения (Multi-seat), настраивает политики доступа к устройствам, предоставляет средства для завершения работы и перехода в спящий режим и т.п.

При этом часть связанной с сеансами функциональности оставалась на плечах процесса gnome-session, который занимался управлением через D-Bus, запуском дисплейного менеджера и компонентов GNOME, организацией автозапуска указанных пользователем приложений. В процессе разработки GNOME 3.34 специфичные для gnome-session возможности оформлены в виде unit-файлов для systemd, выполняемых в режиме "systemd --user", т.е. в привязке к окружению конкретного пользователя, а не всей системы. Изменения уже применены в дистрибутиве Fedora 31, выпуск которого ожидается в конце октября.

Использование systemd дало возможность организовать запуск обработчиков по требованию или при наступлении определённых событий, а также более изощрённо реагировать на преждевременное завершения процессов из-за сбоев и расширенно обрабатывать зависимости при запуске компонентов GNОME. Как следствие, можно сократить число постоянно запущенных процессов и снизить потребление памяти. Например, XWayland теперь можно запускать только при попытке выполнения приложения на базе протокола X11, а специфичные для определённого оборудования компоненты, только при наличии такого оборудования (например, обработчики для смарткарт будут запускаться при вставке карты и завершаться при её извлечении).

Для пользователя появились более гибкие инструменты управления запуском сервисов, например, для отключения обработчика мультимедийных клавиш будет достаточно выполнить "systemctl --user stop gsd-media-keys.target". В случае проблем, связанные с каждым обработчиком логи можно просмотреть командой journalctl (например, "journalctl --user -u gsd-media-keys.service"), предварительно включив в сервисе ведение отладочного лога ("Environment=G_MESSAGES_DEBUG=all"). Также появилась возможность запуска в изолированных sandbox-окружениях всех компонентов GNOME, к которым предъявляются повышенные требования к безопасности.

Для сглаживания перехода, поддержку старого способа запуска процессов планируется сохранить в течение нескольких циклов разработки GNOME. Далее разработчики проведут рецензирование состояния gnome-session и скорее всего (отмечено как "likely") удалят из него средства запуска процессов и сопровождения D-Bus API. Затем применение "systemd --user" будет переведено в разряд обязательных функций, что может создать трудности для систем без systemd и потребует подготовки альтернативного решения, как в своё время было с systemd-logind. Тем не менее, в своём выступлении на конференции GUADEC 2019 Бенджамин Берг упомянул о намерении сохранить поддержку старого метода запуска для систем без systemd, но данная информация расходится с планами на странице проекта.

Источники

править
 
 
Creative Commons
Эта статья содержит материалы из статьи «GNOME адаптирован для управления через systemd», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.