GNOME jest przystosowane do zarządzania poprzez systemd

Benjamin Berg (Benjamina Berga), jeden z inżynierów Red Hata zaangażowanych w rozwój GNOME, streszczony wyniki prac nad przejściem GNOME do zarządzania sesjami wyłącznie przy użyciu systemd, bez użycia procesu gnome-session.

Jest używany od dłuższego czasu do kontrolowania logowania do GNOME. logowanie systemowe, który śledzi stany sesji specyficzne dla użytkownika, zarządza identyfikatorami sesji, odpowiada za przełączanie między aktywnymi sesjami, koordynuje środowiska wielostanowiskowe, konfiguruje zasady dostępu do urządzeń, zapewnia narzędzia do zamykania i uśpienia itp.

Jednocześnie część funkcjonalności związanej z sesją pozostała na barkach procesu sesji gnome, który był odpowiedzialny za zarządzanie poprzez D-Bus, uruchamianie menedżera wyświetlania i komponentów GNOME oraz organizowanie automatycznego uruchamiania aplikacji określonych przez użytkownika . Podczas opracowywania GNOME 3.34 funkcje specyficzne dla sesji gnome są pakowane jako pliki jednostkowe dla systemd, wykonywane w trybie „systemd —user”, tj. w odniesieniu do środowiska konkretnego użytkownika, a nie całego systemu. Zmiany zostały już zaimplementowane w dystrybucji Fedory 31, która ma zostać wydana pod koniec października.

Użycie systemd umożliwiło zorganizowanie uruchamiania procedur obsługi na żądanie lub w przypadku wystąpienia określonych zdarzeń, a także bardziej wyrafinowane reagowanie na przedwczesne zakończenie procesów z powodu awarii i obszerną obsługę zależności podczas uruchamiania komponentów GNOME. W rezultacie można zmniejszyć liczbę stale uruchomionych procesów i zmniejszyć zużycie pamięci. Na przykład XWayland można teraz uruchomić tylko podczas próby uruchomienia aplikacji opartej na protokole X11, a komponenty specyficzne dla sprzętu można uruchomić tylko wtedy, gdy taki sprzęt jest obecny (na przykład procedury obsługi kart inteligentnych zostaną uruchomione po włożeniu karty i zakończyć po jego usunięciu).

Dla użytkownika pojawiły się 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 logi powiązane z każdą procedurą obsługi można wyświetlić za pomocą polecenia journalctl (na przykład „journalctl —user -u gsd-media-keys.service”), po wcześniejszym włączeniu logowania debugowania w usłudze („Environment= G_MESSAGES_DEBUG=wszystko”). Możliwe jest także uruchamianie wszystkich komponentów GNOME w izolowanych środowiskach typu sandbox, które podlegają podwyższonym wymogom bezpieczeństwa.

Aby ułatwić przejście, wsparcie dla starego sposobu uruchamiania procesów planowane utrzymują się przez wiele cykli rozwoju GNOME. Następnie programiści sprawdzą stan sesji gnome i najprawdopodobniej (oznaczeni jako „prawdopodobni”) usuną z niej narzędzia do uruchamiania procesów i utrzymywania API D-Bus. Wówczas użycie „systemd -user” zostanie zdegradowane do kategorii funkcji obowiązkowych, co może powodować trudności dla systemów bez systemd i będzie wymagało przygotowania alternatywnego rozwiązania, tak jak miało to kiedyś miejsce w przypadku logowanie systemowe. Jednak w swoim przemówieniu na GUADEC 2019 Benjamin Berg wspomniał o zamiarze utrzymania wsparcia dla starej metody uruchamiania dla systemów bez systemd, jednak informacja ta kłóci się z planami dotyczącymi strona projektu.

Źródło: opennet.ru

Dodaj komentarz