J'accède à une machine via plusieurs sessions de connexion. Les durées de vie des sessions peuvent ou non se chevaucher. Dans mon cas, ces sessions de connexion sont actuellement toujours via SSH, mais je préférerais également gérer les sessions locales.
J'ai parfois besoin de D-Bus dans ces sessions, et je souhaite partager la même session D-Bus entre ces sessions de connexion, afin d'utiliser GVFS .
Quelle est la manière recommandée de procéder? Je ne veux casser aucune utilisation de D-Bus que je ne connaisse pas. J'ai envisagé d'utiliser
export $(dbus-launch --autolaunch $(cat /var/lib/dbus/machine-id))
mais (depuis Ubuntu 12.04) cela ne semble pas correct:
- cela nécessite une session X, mais mes sessions SSH peuvent ou non transmettre un affichage X, et même celles qui ne sont pas identiques
$DISPLAY
; - si aucun affichage X n'est disponible, se
dbus-launch
plaint que "Erreur de lancement automatique: l'initialisation X11 a échoué." et ne démarre pas un démon; - la
dbus-launch
page de manuel indique que «l'--autolaunch
option est considérée comme un détail d'implémentation interne (…). Il n'y a de toute façon aucune raison de l'utiliser en dehors de l'implémentation de libdbus. »
Est dbus-launch
-ce qu'un autre outil de la suite D-Bus prend en charge la détection automatique d'une exécution dbus-daemon
et la connexion à celle-ci? Les informations nécessaires sont disponibles ~/.dbus/session-bus/$(cat /var/lib/dbus/machine-id)-${DISPLAY#*:}
si D-Bus est démarré avec une connexion X, mais ne semble stocké nulle part si aucune connexion X n'est disponible.
Dois-je bricoler mon propre fichier de session D-Bus? Si je le fais, dois-je utiliser un fichier dans le ~/.dbus/session-bus
répertoire? Le chemin est-il /var/lib/dbus/machine-id
fiable et portable?