2

在花了一点时间了解 D-Bus 会话和系统总线是如何工作的之后,我现在专注于允许人们使用和内省我的服务,以便让任何人都可以使用我的服务轻松实现功能。

然后,我编写了以下配置文件,并将其放入我的/etc/dbus-1/system.d/:

 <!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 own="org.zedroot.Test" />
    <allow send_destination="org.zedroot.Test" />
  </policy>
  <policy context="default">
    <allow send_destination="org.zedroot.Test"
           send_interface="org.zedroot.Test" />
    <allow send_destination="org.zedroot.Test"
           send_interface="org.freedesktop.DBus.Introspectable" />
    <allow send_destination="org.zedroot.Test"
           send_interface="org.freedesktop.DBus.Properties" />
  </policy>
</busconfig>

但是使用 d-feet 我可以看到我的服务,但不能对其进行内省(我在服务中看不到任何东西:没有方法、信号或属性)。

谁能帮帮我?

4

2 回答 2

1

重新启动计算机后,它现在可以工作了。

于 2013-04-19T16:33:06.953 回答
1

备查。

以下内容应该足以让您对您的服务进行自省:

.
.
<!-- Allow introspect -->
<policy context="default">
  <allow send_destination="org.zedroot.Test"/>
</policy>
.
.
于 2019-10-18T20:03:14.580 回答