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

添加评论