2011-10-16 2 views
4

J'essaie de démarrer automatiquement un service DBus lorsque mon programme client démarre. J'ai installé un fichier .service, mais cela ne fonctionne pas..Service File D-Bus

Mon nom de service est

org.fandingo.PMP 

je me inscrire le nom d'un serveur python avec

name = dbus.service.BusName('org.fandingo.PMP', session_bus) 
object = PMPService(session_bus, '/PMPService', PMPProxy()) 

Je peux me connecter à ce bien si je lance manuellement le code du serveur avec les éléments suivants du client Par conséquent, le serveur et le client fonctionnent tous deux s'ils sont invoqués manuellement. Si je viens essayer le client, je reçois l'exception Python suivant

dbus.exceptions.DBusException: org.freedesktop.DBus.Error.ServiceUnknown: The name org.fandingo.PMP was not provided by any .service files 

Voici mon fichier .Service

-rw-r--r--. root root unconfined_u:object_r:usr_t:s0 /usr/share/dbus-1/services/org.fandingo.PMP.service 

Ces autorisations et les étiquettes SELinux sont identiques aux autres fichiers .Service.

Le contenu du fichier de .Service

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

pmpserver.py est exécutable et a le tralala correct.

Quelqu'un voit-il des problèmes avec moi configuration?

Merci,

Répondre

1

Enfin figuré celui-ci.

Je ne sais pas exactement comment les fichiers .service sont exécutés, mais ils n'obtiennent pas correctement/bin/env.

Mon tralala ne fonctionnait pas correctement:

#!/usr/bin/env python 

j'ai changé mon dossier de service à

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

Tout fonctionne très bien maintenant.

+1

L'emplacement le plus habituel pour env est/usr/bin. Au moins sur Linux, c'est là. –