.Service File D-Bus - PullRequest
       7

.Service File D-Bus

4 голосов
/ 16 октября 2011

Я пытаюсь автоматически запустить службу 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 является исполняемым и имеет правильный шебанг.

Кто-нибудь видит какие-либо проблемы со мной?

Спасибо,

1 Ответ

1 голос
/ 08 ноября 2011

Наконец-то понял это.

Я не уверен точно, как выполняются файлы .service, но они не получают / bin / env.

Мой Шебанг не работал должным образом:

#!/usr/bin/env python

Я изменил свой сервисный файл на

[D-Bus Service]
Name=org.fandingo.PMP
Exec=python /home/fandingo/code/python/pmp/src/pmpserver.py

Теперь все отлично работает.

...