主要观点: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.Introspectable、org.freedesktop.DBus.Peer、org.freedesktop.DBus.Properties。 busctl call的参数及用法,如获取NetworkManager.service对象路径的命令。- 重启服务的两种方式及对应的参数。
busctl monitor的匹配规则及用于监控PropertiesChanged信号的命令。- DBus 的类型系统,包括各种数据类型对应的 ASCII 字符及规范。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。