.Service File D-Bus

时间:2011-10-16 00:24:20

标签: dbus

我正在尝试在客户端程序启动时自动启动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=fandingo

pmpserver.py是可执行的,并且具有正确的shebang。

有没有人发现我配置有任何问题?

谢谢,

1 个答案:

答案 0 :(得分:1)

最后想出了这个。

我不确定.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

现在一切都很好。