Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 11/01/2009, à 04:38

Elzéard

environnement variable, dbus, ssh et rhythmbox-client!

Bonsoir,

Pour schématiser, on va appeler les deux machines serveur et client.

rhythmbox tourne sur serveur.

Je me connecte sur serveur depuis client via ssh. Ensuite je lance par exemple:

rhythmbox-client --play-pause

Là, il me met:

(rhythmbox-client:19961): Rhythmbox-WARNING **: Failed to execute
dbus-launch to autolaunch D-Bus session

J'ai trouvé un message qui explique l'origine du problème et comment le résoudre:
-version anglaise:

rhythmbox-client communicates with rhythmbox using the dbus session bus,
so you need to make sure the client process has the same
DBUS_SESSION_BUS_ADDRESS environment variable as the rhythmbox process.

-traduction par mes soins:

rhythmbox-client communique avec rhythmbox en utilisant le bus de session dbus, donc tu dois t'assurer que le processus client a la même variable d'environnement DBUS_SESSION_BUS_ADDRESS que le processus rhythmbox

Par défaut, une session ssh ne semble pas avoir de  DBUS_SESSION_BUS_ADDRESS, ce qui explique donc pourquoi ça ne marche pas.
La solution serait donc de rajouter la variable  DBUS_SESSION_BUS_ADDRESS. Cependant, vous n'avez qu'à taper

env|grep DBUS

dans une console pour vous rendre compte que c'est super fastidieux de le faire à la main. De plus, d'après mes expériences, la variable  DBUS_SESSION_BUS_ADDRESS change à chaque session gnome. Donc inutile de la fixer pour le shell ssh.
Je ne vois pas non plus comment récupérer la variable  DBUS_SESSION_BUS_ADDRESS de serveur depuis le shell ssh de client.
J'imagine que fixer la variable sur serveur ne serait pas très heureux.

Donc la seule solution que je vois serais de stocker la variable dans un fichier à partir d'un shell de serveur puis de lire le fichier sur le shell ssh de client pour enfin configurer la variable pour le shell ssh.
Bref, c'est un peu comme utiliser une pelleteuse pour planter un géranium... neutral

Si vous voyez une solution un peu plus élégante et surtout moins fastidieuse, je suis preneur.


Intrepid on : Asus eeebox b202 (Intel Atom N270)
                    Fujitsu siemens Amilo A1640 (AMD Mobile Sempron 2800)
                    PC assemblé (Intel Core 2 Duo E8200)
                    Asus eeepc 901 (Intel Atom N270)

Hors ligne

#2 Le 22/07/2009, à 12:44

mprog

Re : environnement variable, dbus, ssh et rhythmbox-client!

Bonjour,

En fait la variable DBUS_SESSION_BUS_ADDRESS est présente dans le fichier fils du répertoire :

.dbus/session-bus/

Après pour l'exploiter je tenterais un truc genre :

export `grep ^DBUS_SESSION_BUS_ADDRESS ~/.dbus/session-bus/*`

En espérant qu'il n'en génère qu'un à la fois.

Bonne journée

#3 Le 22/07/2009, à 12:54

Zakhar

Re : environnement variable, dbus, ssh et rhythmbox-client!

Si j'ai bien compris, DBUS est ce sur quoi repose X

SSH tu es en mode caractères, et tu tentes de lancer un logiciel qui a besoin de X.

Donc ça marche pas !

J'ai eu un peu le même problème pour envoyer une notification (petits messages qui apparaissent en "bulles") via SSH.
J'y suis arrivé car c'est juste du Display : 

http://forum.ubuntu-fr.org/viewtopic.php?id=328499

... si ça peut te donner des idées...

Dernière modification par Zakhar (Le 22/07/2009, à 12:55)


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#4 Le 23/07/2009, à 11:39

mprog

Re : environnement variable, dbus, ssh et rhythmbox-client!

Zakhar a écrit :

Si j'ai bien compris, DBUS est ce sur quoi repose X

SSH tu es en mode caractères, et tu tentes de lancer un logiciel qui a besoin de X.

Donc ça marche pas !

J'ai eu un peu le même problème pour envoyer une notification (petits messages qui apparaissent en "bulles") via SSH.
J'y suis arrivé car c'est juste du Display : 

http://forum.ubuntu-fr.org/viewtopic.php?id=328499

... si ça peut te donner des idées...

Bonjour,

DBUS est un IPC «inter-process communication» (certain programme publie des services et d'autre peuvent s'en servir). Le serveur X ne s'en sert pas (Sauf peut-être pour des services que je connais pas). Par contre certain logiciel s'en servent notamment pour certaines notifications (Gnome,KDE, ...).

Sans l'adresse de la session DBUS on ne peut pas l'utiliser même avec ssh -X ou un export DISPLAY=:0 .

J'ai eu ce problème avec gcontool-2 et changer la conf de façon dynamique (sans fermer et relancer la session) en ssh.

Bonne journée.

#5 Le 29/07/2009, à 14:00

Seth_

Re : environnement variable, dbus, ssh et rhythmbox-client!

Salut,

J'ai le même problème, mais non seulement j'ai trois fichiers dans ~/.dbus/session-bus mais en plus aucun des trois ne contient les valeurs correctes...

Je suis donc à la recherche d'un autre moyen pour trouver la bonne valeur de DBUS_SESSION_BUS_ADDRESS

Hors ligne

#6 Le 29/07/2009, à 22:54

Seth_

Re : environnement variable, dbus, ssh et rhythmbox-client!

Problème presque résolu, il suffi d'ajouter

export `grep DBUS_SESSION_BUS_ADDRESS= $(ls -t ~/.dbus/session-bus/* | head -1)`

dans son ~/.profile ou ~/.{shell}rc . Le script récupère en fait la valeur de DBUS_SESSION_BUS_ADDRESS du fichier le plus récent dans ~/.dbus/session-bus/ et la définit comme variable d'environnement.

Hors ligne