GNOME, адаптиран за управление на systemd

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

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

В същото време част от функционалността, свързана със сесията, остана на раменете на процеса на сесия на gnome, който отговаряше за управлението чрез D-Bus, стартирането на мениджъра на дисплея и компонентите на GNOME, организирането на автоматично стартиране на зададени от потребителя приложения. По време на разработката на GNOME 3.34, специфичните за сесията на gnome функции бяха пакетирани като модулни файлове за 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 =всички"). Също така стана възможно всички компоненти на GNOME да се изпълняват в изолирани пясъчни среди, които са обект на повишени изисквания за сигурност.

За да изгладите прехода, поддържайте стария начин на изпълнение на процесите е планирано запишете в множество цикъла на разработка на GNOME. След това разработчиците ще прегледат състоянието на сесията на gnome и най-вероятно (отбелязани като „вероятно“) ще премахнат от нея програмите за стартиране и поддържане на D-Bus API. След това използването на "systemd --user" ще бъде преместено в категорията на задължителните функции, което може да създаде трудности за системи без systemd и да изисква изготвянето на алтернативно решение, както някога беше направено с systemd-login. Въпреки това, в своята основна бележка на GUADEC 2019, Бенджамин Берг спомена намерението си да запази поддръжката на стария метод за стартиране за системи без systemd, но тази информация е в противоречие с плановете за страница на проекта.

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

Добавяне на нов коментар