Бенджамин Берг (), един от инженерите на Red Hat, който работи по разработката на GNOME, резултатите от проекта за превод на GNOME за управление на сесиите изключително чрез systemd, без използване на процеса gnome-session.
За управление на входа в GNOME отдавна се използва , който проследява състоянието на сесиите, свързани с потребителя, управлява идентификаторите на сесиите, отговаря за превключването между активните сесии, координира многопотребителски среди (Multi-seat), конфигурира политики за достъп до устройства, предоставя средства за изключване и преминаване в режим на готовност и т.н.
В същото време част от функционалността, свързана със сесиите, остава на гърба на процеса gnome-session, който управлява чрез D-Bus, стартира дисплейния мениджър и компонентите на GNOME, организира автоматичното стартиране на приложения по избор на потребителя. В процеса на разработка на GNOME 3.34 специфичните за gnome-session възможности са оформени като unit-файлове за systemd, изпълнявани в режим „systemd --user“, т.е. свързани с конкретната среда на потребителя, а не на цялата система. Промените вече са приложени в дистрибуцията Fedora 31, чието излизане се очаква в края на октомври.
Използването на systemd позволи организирането на стартирането на обработчици при поискване или при настъпване на определени събития, както и по-изтънчена реакция на преждевременни приключвания на процеси поради сривове и разширено обработване на зависимости при стартиране на компонентите на GNOME. В резултат, броят на постоянно активните процеси може да бъде намален и потреблението на памет може да бъде сведено до минимум. Например, 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 и най-вероятно (отбелязано като „вероятно“) ще премахнат от него средствата за стартиране на процеси и поддръжка на D-Bus API. След това, приложението „systemd —user“ ще бъде преведено в разряда задължителни функции, което може да създаде трудности за системи без systemd и ще изисква подготовка на алтернативно решение, както беше в миналото с . Въпреки това, в своето изказване на конференцията GUADEC 2019, Бенджамин Берг спомена намерението си да запази поддръжката на стария метод за стартиране за системи без systemd, но тази информация не съвпада с плановете за .

Източник: opennet.ru
