Déterminer DBUS_SESSION_BUS_ADDRESS de l'extérieur de la session X

J'ai mate-screensaver installé sur une machine exécutant Linux Mint 16. Sur cette machine, je peux ouvrir un terminal et interroger l'état de l'économiseur d'écran:

dan@box1 ~ $ echo $DISPLAY :0.0 dan@box1 ~ $ mate-screensaver-command -q The screensaver is inactive The screensaver is not inhibited 

Tout cela fonctionne bien et a du sens. Cependant, quand je SSH dans cette même machine, je ne reçois pas les résultats que j'attends:

 dan@box2 ~ $ ssh box1 dan@box1 ~ $ export DISPLAY=:0.0 dan@box1 ~ $ echo $DISPLAY :0.0 dan@box1 ~ $ mate-screensaver-command -q ** Message: Screensaver is not running! 

Cette même méthode fonctionne sur tous mes autres ordinateurs, tous exécutant différentes versions de Mint. Rien d'étrange ne se connecte à mes ~/.xsession-errors .

Après avoir lu cette réponse , j'ai découvert que la configuration de mon DBUS_SESSION_BUS_ADDRESS à unix:abstract=/tmp/dbus-ToCuEUyLn0,guid=9296df6ba791b044d4236e45545fbe55 (sa valeur dans un terminal local) rend les choses comme je l'espère sur SSH. Cependant, ~/.dbus/session-bus/*-0 contient une valeur différente, ce qui ne fonctionne pas et je ne trouve pas de file contenant la bonne valeur pour cette variable.

Pourquoi une de mes machines exigerait-elle que cette valeur soit changée, alors que le rest ne le ferait pas? Si ce comportement a du sens ou est compliqué à corriger, où puis-je chercher la valeur correcte pour cette variable?

J'utilise ceci pour l'get, mais il s'appuie sur une session en cours d'exécution:

 if [[ -z $DBUS_SESSION_BUS_ADDRESS ]]; then pgrep "gnome-session" -u "$USER" | while read -r line; do exp=$(cat /proc/$line/environ | grep -z "^DBUS_SESSION_BUS_ADDRESS=") echo export "$exp" > ~/.exports.sh break done if [[ -f ~/.exports.sh ]]; then source ~/.exports.sh fi fi 

Changez 'gnome'to n'importe quelle autre session que vous avez (il doit être en cours d'exécution).