GNOME přizpůsobené pro správu systemd

Benjamin Berg (Benjamin Berg), jeden z inženýrů Red Hat podílejících se na vývoji GNOME, shrnuto výsledky práce na přesunutí GNOME do správy relací výhradně prostřednictvím systemd, bez použití procesu gnome-session.

Správa přihlášení GNOME se používá již nějakou dobu. systemd-logind, která monitoruje stavy relací ve vztahu k uživateli, spravuje ID relací, zodpovídá za přepínání mezi aktivními relacemi, koordinuje prostředí pro více uživatelů (Multi-seat), konfiguruje zásady přístupu k zařízení, poskytuje prostředky pro vypnutí a přechod do režimu spánku atd. ..

Část funkcionality související s relací přitom zůstala na bedrech procesu gnome-session, který měl na starosti správu přes D-Bus, spouštění správce zobrazení a komponent GNOME, organizování automatického spouštění uživatelem specifikovaných aplikací. Během vývoje GNOME 3.34 byly funkce specifické pro gnome-session zabaleny jako jednotkové soubory, aby systemd běžel v režimu „systemd --user“, tj. ve vztahu k prostředí konkrétního uživatele, nikoli k celému systému. Změny již byly aplikovány v distribuci Fedora 31, jejíž vydání se očekává koncem října.

Použití systemd umožnilo organizovat spouštění obslužných rutin na vyžádání nebo při výskytu určitých událostí, stejně jako sofistikovanější reakci na předčasné ukončení procesů z důvodu selhání a rozsáhlé zpracování závislostí při spouštění komponent GNOME. Díky tomu můžete snížit počet neustále běžících procesů a snížit spotřebu paměti. Například XWayland lze nyní spustit pouze při pokusu o spuštění aplikace založené na protokolu X11 a hardwarově specifických komponent pouze s takovým hardwarem (například obslužné rutiny pro čipové karty budou spuštěny při vložení karty a ukončeny při je odstraněno).

Pro uživatele se objevily flexibilnější nástroje pro správu spouštění služeb, například pro deaktivaci obsluhy multimediálních klíčů bude stačit spustit „systemctl –user stop gsd-media-keys.target“. V případě problémů lze protokoly přidružené ke každému handleru zobrazit pomocí příkazu journalctl (například "journalctl -user -u gsd-media-keys.service") po povolení protokolování ladění ve službě ("Environment=G_MESSAGES_DEBUG =všechny"). Bylo také možné spouštět všechny komponenty GNOME v izolovaných prostředích sandbox, která podléhají zvýšeným bezpečnostním požadavkům.

Pro hladký přechod podpora starého způsobu spouštění procesů je plánováno uložit během několika vývojových cyklů GNOME. Dále vývojáři zkontrolují stav gnome-session a s největší pravděpodobností (označeno jako „pravděpodobné“) z něj odstraní spouštěče procesů a správce D-Bus API. Pak se použití "systemd --user" přesune do kategorie povinných funkcí, které mohou vytvářet potíže pro systémy bez systemd a vyžadovat přípravu alternativního řešení, jako tomu bylo kdysi u systemd-logind. Benjamin Berg však ve své keynote GUADEC 2019 zmínil svůj záměr zachovat podporu pro starou spouštěcí metodu pro systémy bez systemd, ale tato informace je v rozporu s plány na stránka projektu.

Zdroj: opennet.ru

Přidat komentář