我正在dbus
为自己的需求构建自定义服务,并希望它在有人需要时自动启动。为此,我创建了.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/to/object'
的对象在服务启动后立即注册。我只是不明白为什么dbus
找不到我的.service
文件。也许我错过了什么?有任何想法吗?
编辑
我已经设法让 D-BUS 自动启动我的脚本。文件的部分.service
应该被命名[D-BUS Service]
而不是[D-Bus service]