Benjamin Berg (), jeden z inżynierów Red Hat, zajmujący się rozwojem GNOME, wyniki prac nad przeniesieniem GNOME na zarządzanie sesjami wyłącznie za pomocą systemd, bez użycia procesu gnome-session.
Do zarządzania logowaniem w GNOME od dłuższego czasu używa się , który śledzi stany sesji związanych z użytkownikami, zarządza identyfikatorami sesji, odpowiada za przełączanie między aktywnymi sesjami, koordynuje środowiska wielodostępowe (Multi-seat), ustala zasady dostępu do urządzeń, zapewnia narzędzia do zamykania systemu i przechodzenia w tryb uśpienia itd.
Jednocześnie część funkcjonalności związanej z sesjami pozostała w gestii procesu gnome-session, który zajmował się zarządzaniem poprzez D-Bus, uruchamianiem menedżera wyświetlania oraz komponentów GNOME, organizowaniem automatycznego uruchamiania aplikacji wskazanych przez użytkownika. W trakcie rozwoju GNOME 3.34 funkcje specyficzne dla gnome-session zostały przekształcone w pliki jednostkowe dla systemd, uruchamiane w trybie „systemd --user”, tzn. w kontekście konkretnego użytkownika, a nie całego systemu. Zmiany zostały już wprowadzone w systemie Fedora 31, którego wydanie spodziewane jest pod koniec października.
Zastosowanie systemd umożliwiło organizację uruchamiania handlerów na żądanie lub przy wystąpieniu określonych wydarzeń, a także bardziej wyrafinowaną reakcję na przedwczesne zakończenia procesów z powodu awarii oraz rozszerzone zarządzanie zależnościami przy uruchamianiu komponentów GNOME. W rezultacie możliwe jest zmniejszenie liczby ciągle działających procesów i obniżenie zużycia pamięci. Na przykład, XWayland można teraz uruchamiać tylko w momencie próby uruchomienia aplikacji opartych na protokole X11, a komponenty specyficzne dla konkretnego sprzętu tylko w przypadku obecności takiego sprzętu (na przykład, handlerów dla kart smart, które będą uruchamiane w momencie włożenia karty i zakończą działanie po jej wyjęciu).
Użytkownik zyskał bardziej elastyczne narzędzia do zarządzania uruchamianiem usług, na przykład, aby wyłączyć obsługę klawiszy multimedialnych, wystarczy wykonać „systemctl —user stop gsd-media-keys.target”. W przypadku problemów związanych z każdym kontrolerem, logi można przeglądać za pomocą polecenia journalctl (na przykład „journalctl —user -u gsd-media-keys.service”), wcześniej włączając w usłudze prowadzenie debugowania logów („Environment=G_MESSAGES_DEBUG=all”). Pojawiła się również możliwość uruchamiania w izolowanych kontenerach sandbox wszystkich komponentów GNOME, które mają zwiększone wymagania bezpieczeństwa.
Aby ułatwić przejście, wsparcie dla starego sposobu uruchamiania procesów będzie zachowane przez kilka cykli rozwoju GNOME. Następnie programiści przeprowadzą przegląd stanu gnome-session i prawdopodobnie (oznaczone jako „prawdopodobne”) usuną z niego narzędzia do uruchamiania procesów i obsługi D-Bus API. Wtedy stosowanie „systemd —user” stanie się wymaganym elementem, co może stworzyć problemy dla systemów bez systemd i wymagać przygotowania alternatywnego rozwiązania, jak w swoim czasie miało to miejsce z . Niemniej jednak, w swoim wystąpieniu na konferencji GUADEC 2019, Benjamin Berg wspomniał o zamiarze zachowania wsparcia dla starej metody uruchamiania w systemach bez systemd, ale ta informacja jest sprzeczna z planami na .

Źródło: opennet.ru
