缺lessDBus .service文件

我正在为自己的需求构build自定义的dbus服务,并希望在需要时自动启动dbus服务。 为此目的,我创build了这样的.service文件

 [D-Bus Service] Name=com.mycompany.servicename Exec=/home/myuser/Workspace/service-start User=myuser 

在这里,我只是改变了服务和可执行文件的实际名称,但这不是重点。 我已经仔细检查了真实姓名 – 完全匹配。 我已经把这个文件名为com.mycompany.servicename.service到/ usr / share / dbus-1 / services文件夹(我使用Ubuntu 11.10)。可执行文件对每个人都有x权限。 这就是问题所在 – 当我尝试启动执行的客户端时

 bus = dbus.SessionBus() bus.get_object('com.mycompany.servicename','/path/to/object') 

我得到dbus.exceptions.DBusException: org.freedesktop.DBus.Error.ServiceUnknown: The name com.mycompany.servicename was not provided by any .service files

在path'/path/to/object'中的'/path/to/object'在服务启动后立即注册。 我只是不明白为什么dbus无法find我的.service文件。 也许我错过了什么? 有任何想法吗?

编辑我设法让D-BUS自动启动我的脚本。 .service文件的部分应该被命名为[D-BUS Service]而不是[D-Bus service]

Solutions Collecting From Web of "缺lessDBus .service文件"

以下是评论的简短摘要…

在XDG Base Directory Specification中指定的目录之一中创建子目录dbus-1/services/ 。 通常, ~/.local/share/dbus-1/services/工作得很好。 输入新的子目录,创建一个名为com.mycompany.servicename.service的文件并添加行:

 [D-BUS Service] Name=com.mycompany.servicename Exec=/home/myuser/Workspace/service-start User=myuser 

请注意, [D-BUS Service]需要大写。

而已!