几个基本的dbus问题

时间:2013-11-14 04:18:34

标签: linux dbus

我是dbus的新手,我正在努力了解如何使用它,但我似乎无法找到我寻求的答案。

我是否正确我可以创建自己的服务名称,只要它们是唯一的并且不与任何其他服务名称冲突?

当我调用dbus_bus_request_name()请求我自己的服务名称时,我收到一条错误,指出由于配置文件中的安全策略,我不允许拥有该服务。在查看/ etc / dbus-1配置目录时,似乎有一个系统配置文件(/etc/dbus-1/system.conf),然后是各种服务的其他配置文件的子目录(/ etc / dbus-1 / system.d子目录)。

我使用其他.conf文件作为示例为我的服务名称添加了配置文件。但我没有看到system.conf文件读取任何单个.conf文件。我是否正确地假设单个配置文件将以某种方式被读取?那么在编辑system.d目录中的一个.conf文件之后,或者在添加了像我这样的新服务配置文件之后,如何让系统总线重新读取system.conf文件?

这是配置系统总线的正确方法,因此我可以有2个进程传递消息吗?我的应用程序是一个由多个进程组成的封闭应用程序,因此我打算通过系统dbus进行的唯一通信只能在我自己的进程之间进行,而不是任何其他公共或其他众所周知的服务。

谢谢,

-Andres

1 个答案:

答案 0 :(得分:2)

  

我是否纠正我可以创建自己的服务名称,只要它们是唯一的并且不与任何其他服务名称冲突?

  

当我调用dbus_bus_request_name()请求我自己的服务名称时,我收到一条错误,指出由于配置文件中的安全策略,我不允许拥有该服务。

我猜你正在使用SYSTEM总线。除非有理由使用SYSTEM总线,否则使用SESSION总线会更容易,尤其是测试时。 SYSTEM总线使用其他安全措施来确保系统的安全性,看一下服务的一些配置文件,它们展示了如何允许某些服务在总线上拥有特定的名称。

  

我是否认为个别配置文件会以某种方式被读取?

是的,如果查看system.conf,您可以看到<includedir>标记,其中包含该目录中的所有内容。

  

那么在编辑system.d目录中的一个.conf文件之后,或者在添加了像我这样的新服务配置文件之后,如何让系统总线重新读取system.conf文件?

向dbus-daemon发送SIGHUP

  

这是配置系统总线的正确方法,因此我可以有2个进程传递消息吗?

这应该有效。