GNOME 適合透過 systemd 進行管理

班傑明·伯格(班傑明·伯格),參與 GNOME 開發的紅帽工程師之一, 廣義的 將 GNOME 過渡到僅使用 systemd 而不使用 gnome-session 程序的會話管理的工作成果。

它已經被用來控制 GNOME 的登入已有相當長的一段時間了。 系統登入,它追蹤使用者特定的會話狀態,管理會話標識符,負責在活動會話之間切換,協調多座環境,配置裝置存取策略,提供關閉和進入睡眠的工具等。

同時,部分與會話相關的功能仍然由 gnome-session 進程承擔,該進程負責透過 D-Bus 進行管理、啟動顯示管理器和 GNOME 元件以及組織使用者指定應用程式的自動運行。 在 GNOME 3.34 的開發過程中,特定於 gnome-session 的功能被打包為 systemd 的單元文件,在「systemd —user」模式下執行,即與特定使用者的環境有關,而不是與整個系統有關。 這些變更已在 Fedora 31 發行版中實施,預計將於 XNUMX 月底發布。

使用 systemd 可以根據需要或在發生某些事件時組織處理程序的啟動,以及更複雜地響應因故障而導致的進程提前終止,並在啟動 GNOME 組件時廣泛處理依賴關係。 因此,您可以減少持續運行的進程數量並減少記憶體消耗。 例如,XWayland 現在只能在嘗試執行基於 X11 協定的應用程式時啟動,並且只有存在此類硬體時才能啟動特定於硬體的元件(例如,插入卡時將啟動智慧卡的處理程序)並在刪除時終止)。

為使用者提供了更靈活的管理服務啟動的工具;例如,要停用多媒體金鑰處理程序,執行「systemctl -user stop gsd-media-keys.target」就足夠了。 如果出現問題,可以使用journalctl指令查看與每個處理程序關聯的日誌(例如,「journalctl —user -u gsd-media-keys.service」),先前已在服務中啟用了偵錯日誌記錄(「Environment= G_MESSAGES_DEBUG=全部”)。 還可以在隔離的沙箱環境中運行所有 GNOME 元件,這需要滿足更高的安全要求。

為了平滑過渡,支援舊的運行流程方式 計劃 在多個 GNOME 開發週期中持續存在。 接下來,開發人員將檢查 gnome-session 狀態,並很可能(標記為「可能」)刪除用於啟動進程和維護 D-Bus API 的工具。 然後,「systemd -user」的使用將被歸類為強制功能類別,這可能會給沒有 systemd 的系統帶來困難,並且需要準備替代解決方案,就像曾經的情況一樣 系統登入。 然而,Benjamin Berg 在 GUADEC 2019 的演講中提到了對於沒有 systemd 的系統保持對舊的啟動方法的支持的意圖,但這一信息與計劃不一致 專案頁面.

來源: opennet.ru

添加評論