我是 Dbus 新手,我很好奇是否有任何方法可以监视进程并查看该进程是否收到任何 Dbus 消息。(我正在从事某个项目,想知道 Xserver 在注销时是否收到任何 Dbus 消息)。非常感谢。
答案1
看一眼这WIKI文章:
常用的总线有两种:session bus
和system bus
。任何应用程序都可以使用其中任意一种,具体取决于它正在执行的操作。
- 要监控会话总线:
dbus-monitor
- 要监控系统总线:
创建一个文件/etc/dbus-1/system-local.conf
,内容如下:
<!DOCTYPE busconfig PUBLIC
"-//freedesktop//DTD D-Bus Bus Configuration 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
<busconfig>
<policy user="root">
<allow eavesdrop="true"/>
<allow eavesdrop="true" send_destination="*"/>
</policy>
</busconfig>
重新启动计算机以使配置更改生效。仅重新加载 DBus 服务器配置是不够的。有关更多信息,请参阅此错误。
现在以 root 身份运行 dbus-monitor。您应该能够看到所有信号、方法调用和方法回复。
sudo dbus-monitor --system
调试完成后,最好删除策略片段:
sudo rm /etc/dbus-1/system-local.conf