GNOME ua fetuutuunai e pulea e ala i systemd

Бенджамин Берг (Benjamin Berg), один из инженеров Red Hat, занимающийся разработкой GNOME, lautele результаты работы по переводу 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, к которым предъявляются повышенные требования к безопасности.

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

puna: opennet.ru

Faaopoopo i ai se faamatalaga