Benjamin Berg (), en av ingeniørene hos Red Hat som jobber med utviklingen av GNOME, resultatene av arbeidet med å oversette GNOME til å håndtere sesjoner utelukkende ved hjelp av systemd, uten bruk av gnome-session-prosessen.
For å håndtere innlogging i GNOME har man lenge brukt , som sporer sesjonsstatus knyttet til brukeren, administrerer sesjons-ID-er, håndterer bytting mellom aktive sesjoner, koordinerer flerbruksomgivelser (Multi-seat), konfigurerer tilgangspolicyer for enheter, og gir midler for å avslutte eller sette systemet i hvilemodus, etc.
Samtidig har funksjonaliteten knyttet til sesjoner fortsatt vært håndtert av gnome-session-prosessen, som drev administrasjonen gjennom D-Bus, startet skjermbehandleren og GNOME-komponentene, og organiserte automatisk oppstart av brukerdefinerte applikasjoner. I utviklingen av GNOME 3.34 har spesifikke funksjoner for gnome-session blitt utformet i form av enhetsfiler for systemd, som kjøres i "systemd --user"-modus, altså knyttet til det aktuelle brukerens miljø, ikke hele systemet. Endringene er allerede anvendt i Fedora 31-distribusjonen, hvis utgivelse er forventet mot slutten av oktober.
Bruken av systemd har gjort det mulig å organisere oppstarten av håndterere på forespørsel eller ved passende hendelser, samt mer sofistikert reagere på uventet avslutning av prosesser på grunn av feil, og bedre håndtere avhengigheter ved oppstart av GNOME-komponenter. Som en konsekvens er det mulig å redusere antallet prosesser som kjører konstant og senke minneforbruket. For eksempel kan XWayland nå bare startes ved forsøk på å kjøre en applikasjon basert på X11-protokollen, mens komponenter spesifik for bestemt maskinvare kun kjører når slik maskinvare er til stede (for eksempel vil håndtere for smartkort bli startet ved innsetting av kortet og avslutte ved fjerning).
Brukeren har fått mer fleksible verktøy for å administrere oppstart av tjenester, for eksempel er det tilstrekkelig å kjøre «systemctl —user stop gsd-media-keys.target» for å deaktivere multimedia-tastaturbehandlingen. I tilfelle problemer kan loggene for hver behandler vises med kommandoen journalctl (for eksempel «journalctl —user -u gsd-media-keys.service»), etter å ha aktivert logging av feilsøkning i tjenesten («Environment=G_MESSAGES_DEBUG=all»). Det har også blitt mulig å kjøre alle GNOME-komponenter i isolerte sandbox-miljøer som har høyere krav til sikkerhet.
For å myke opp overgangen, støtte den gamle metoden for å starte prosesser vil bli bevart gjennom flere utviklingssykluser for GNOME. Deretter vil utviklerne vurdere tilstanden til gnome-session og mest sannsynlig (merket som «likely») fjerne prosessoppstart og vedlikehold av D-Bus API. Deretter vil bruken av «systemd —user» bli sett på som en obligatorisk funksjon, noe som kan skape problemer for systemer uten systemd og kreve forberedelse av alternative løsninger, slik det en gang ble gjort med . Likevel nevnte Benjamin Berg i sitt foredrag på GUADEC 2019 at han hadde til hensikt å opprettholde støtte for den gamle oppstartmetoden for systemer uten systemd, men denne informasjonen er i strid med planene for .

Kilde: opennet.ru
