GNOME адаптаваны для кіравання праз systemd

Бенджамін Берг (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 дало магчымасць арганізаваць запуск апрацоўшчыкаў па патрабаванні або пры надыходзе пэўных падзей, а таксама больш выдасканалена рэагаваць на заўчаснае завяршэння працэсаў з-за збояў і пашырана апрацоўваць залежнасці пры запуску кампанентаў 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 і хутчэй за ўсё (адзначана як "likely") выдаляць з яго сродкі запуску працэсаў і суправаджэння D-Bus API. Затым ужыванне "systemd -user" будзе пераведзена ў разрад абавязковых функцый, што можа стварыць цяжкасці для сістэм без systemd і запатрабуе падрыхтоўкі альтэрнатыўнага рашэння, як у свой час было з systemd-logind. Тым не менш, у сваім выступе на канферэнцыі GUADEC 2019 Бенджамін Берг згадаў пра намер захаваць падтрымку старога метаду запуску для сістэм без systemd, але дадзеная інфармацыя разыходзіцца з планамі на старонцы праекта.

Крыніца: opennet.ru

Дадаць каментар