Ich habe Mate-Bildschirmschoner auf einem Computer installiert, auf dem Linux Mint 16 ausgeführt wird. Auf diesem Computer kann ich ein Terminal öffnen und den Status des Bildschirmschoners abfragen:
dan@box1 ~ $ echo $DISPLAY
:0.0
dan@box1 ~ $ mate-screensaver-command -q
The screensaver is inactive
The screensaver is not inhibited
Das alles funktioniert gut und macht Sinn. Wenn ich jedoch SSH auf demselben Computer verwende, erhalte ich nicht die erwarteten Ergebnisse:
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!
Dieselbe Methode funktioniert auf allen meinen anderen Computern, auf denen verschiedene Versionen von Mint ausgeführt werden. Nichts Seltsames wird bei mir angemeldet ~/.xsession-errors
.
Nach dem Lesen dieser Antwort , entdeckte ich , dass meine Einstellung DBUS_SESSION_BUS_ADDRESS
zu unix:abstract=/tmp/dbus-ToCuEUyLn0,guid=9296df6ba791b044d4236e45545fbe55
(seinen Wert in einem lokalen Terminal) Dinge Arbeit macht , wie ich über SSH erwarten. Allerdings ~/.dbus/session-bus/*-0
enthält einen anderen Wert, der nicht funktioniert, und ich kann nicht eine Datei mit dem korrekten Wert für diese Variable finden.
Warum sollte bei einer meiner Maschinen dieser Wert geändert werden, bei den anderen nicht? Wenn dieses Verhalten sinnvoll oder kompliziert zu korrigieren ist, wo würde ich sonst nach dem richtigen Wert für diese Variable suchen?
DBUS_SESSION_BUS_ADDRESS=$(ps -fwu $(whoami) | sed -n 's/.*[d]bus.*--address=\(.*\)/\1/p')
Nicht perfekt, nicht zuverlässig, sollte aber die meiste Zeit funktionieren.