当我的客户端程序启动时,我正在尝试自动启动DBus服务。我已经设置了一个.service文件,但它不起作用。
我的服务名是
org.fandingo.PMP我向python服务器注册了这个名称。
name = dbus.service.BusName('org.fandingo.PMP', session_bus)
object = PMPService(session_bus, '/PMPService', PMPProxy())如果我从客户端用以下代码手动运行服务器代码,我就可以很好地连接到这个服务器
remote = bus.get_object('org.fandingo.PMP', '/PMPService')因此,如果手动调用,服务器和客户端都可以工作。如果我只是尝试客户端,我会得到以下Python异常
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.ServiceUnknown: The name org.fandingo.PMP was not provided by any .service files这是我的.service文件
-rw-r--r--. root root unconfined_u:object_r:usr_t:s0 /usr/share/dbus-1/services/org.fandingo.PMP.service这些权限和SELinux标签与其他.service文件相同。
.service文件内容
[D-Bus Service]
Name=org.fandingo.PMP
Exec=/home/fandingo/code/python/pmp/src/pmpserver.py
User=fandingopmpserver.py是可执行的,并且具有正确的shebang。
有人看到我的配置有什么问题吗?
谢谢,
发布于 2011-11-08 13:36:33
最终解决了这个问题。
我不确定.service文件是如何执行的,但它们没有正确设置/bin/env。
我的shebang不能正常工作:
#!/usr/bin/env python我将我的服务文件更改为
[D-Bus Service]
Name=org.fandingo.PMP
Exec=python /home/fandingo/code/python/pmp/src/pmpserver.py现在一切都很好了。
https://stackoverflow.com/questions/7781570
复制相似问题