DBus 和 systemd — Beartama 的博客文档

主要观点:systemd 通过 DBus 交互,介绍了 DBus 相关概念及busctl的使用来与 systemd 通信。
关键信息

  • DBus 是 IPC 系统,有系统总线和用户总线两种。
  • 服务通过名称标识,对象通过对象路径标识,接口包含信号、方法和属性。
  • busctl可用于与 DBus 交互,org.freedesktop.systemd1是 systemd 服务名称。
  • 可通过busctl获取 systemd 服务的对象及相关接口,如org.freedesktop.systemd1.Manager
  • NetworkManager.service为例,可通过busctl获取其对象路径、查看接口、读取属性(如ActiveState)、重启服务等。
  • 不能直接监控ActiveState,可通过监测PropertiesChanged信号来间接获取。
    重要细节
  • 3 个特殊接口:org.freedesktop.DBus.Introspectableorg.freedesktop.DBus.Peerorg.freedesktop.DBus.Properties
  • busctl call的参数及用法,如获取NetworkManager.service对象路径的命令。
  • 重启服务的两种方式及对应的参数。
  • busctl monitor的匹配规则及用于监控PropertiesChanged信号的命令。
  • DBus 的类型系统,包括各种数据类型对应的 ASCII 字符及规范。
阅读 21
0 条评论