GNOME er tilpasset for å administreres via systemd

Benjamin Berg (Benjamin Berg), en av Red Hat-ingeniørene involvert i GNOME-utvikling, generalisert resultater av arbeidet med å overføre GNOME til øktadministrasjon utelukkende ved bruk av systemd, uten å bruke gnome-session-prosessen.

Den har blitt brukt i ganske lang tid for å kontrollere pålogging til GNOME. systemd-login, som sporer brukerspesifikke sesjonstilstander, administrerer sesjonsidentifikatorer, er ansvarlig for å bytte mellom aktive økter, koordinerer miljøer med flere seter, konfigurerer enhetstilgangspolicyer, gir verktøy for å slå av og gå i dvale, etc. .

Samtidig forble en del av den øktrelaterte funksjonaliteten på skuldrene av gnome-session-prosessen, som var ansvarlig for å administrere via D-Bus, starte skjermbehandleren og GNOME-komponentene og organisere autorun av brukerspesifiserte applikasjoner . Under utviklingen av GNOME 3.34 pakkes gnome-session-spesifikke funksjoner som enhetsfiler for systemd, utført i "systemd —user"-modus, dvs. i forhold til miljøet til en bestemt bruker, og ikke hele systemet. Endringene er allerede implementert i Fedora 31-distribusjonen, som forventes å bli utgitt i slutten av oktober.

Bruk av systemd gjorde det mulig å organisere lanseringen av behandlere på forespørsel eller når visse hendelser inntreffer, samt å mer sofistikert reagere på for tidlig avslutning av prosesser på grunn av feil og i stor grad håndtere avhengigheter ved oppstart av GNOME-komponenter. Som et resultat kan du redusere antall prosesser som kjører hele tiden og redusere minneforbruket. For eksempel kan XWayland nå bare startes når du prøver å kjøre en applikasjon basert på X11-protokollen, og maskinvarespesifikke komponenter kan bare startes hvis slik maskinvare er tilstede (for eksempel vil behandlere for smartkort starte når et kort settes inn og avsluttes når den er fjernet).

Mer fleksible verktøy for å administrere lanseringen av tjenester har dukket opp for brukeren; for eksempel, for å deaktivere multimedienøkkelbehandleren, vil det være nok å utføre "systemctl -user stop gsd-media-keys.target". I tilfelle problemer kan loggene knyttet til hver behandler vises med journalctl-kommandoen (for eksempel "journalctl —user -u gsd-media-keys.service"), etter å ha aktivert feilsøkingslogging i tjenesten ("Environment= G_MESSAGES_DEBUG=alle»). Det er også mulig å kjøre alle GNOME-komponenter i isolerte sandkassemiljøer, som er underlagt økte sikkerhetskrav.

For å jevne overgangen, støtte for den gamle måten å kjøre prosesser på planlagt vedvare over flere GNOME-utviklingssykluser. Deretter vil utviklerne gjennomgå gnome-session-tilstanden og mest sannsynlig (merket som "sannsynlig") fjerne verktøyene for å starte prosesser og vedlikeholde D-Bus API fra den. Da vil bruken av "systemd -bruker" bli henvist til kategorien obligatoriske funksjoner, noe som kan skape vanskeligheter for systemer uten systemd og vil kreve utarbeidelse av en alternativ løsning, slik tilfellet en gang var med systemd-login. Benjamin Berg nevnte imidlertid i sin tale på GUADEC 2019 intensjonen om å opprettholde støtte for den gamle oppstartsmetoden for systemer uten systemd, men denne informasjonen er i strid med planene for prosjektsiden.

Kilde: opennet.ru

Legg til en kommentar