Ich greife über mehrere Anmeldesitzungen auf einen Computer zu. Die Lebensdauern der Sitzungen können sich überschneiden oder nicht. In meinem Fall sind diese Anmeldesitzungen derzeit immer über SSH, aber ich würde es vorziehen, auch lokale Sitzungen abzuwickeln.
In diesen Sitzungen wird manchmal D-Bus benötigt, und ich möchte dieselbe D-Bus-Sitzung für alle Anmeldesitzungen freigeben , um GVFS zu verwenden .
Was ist der empfohlene Weg, um dies zu tun? Ich möchte keine Verwendung von D-Bus unterbrechen, die mir möglicherweise nicht bekannt ist. Ich habe darüber nachgedacht
export $(dbus-launch --autolaunch $(cat /var/lib/dbus/machine-id))
aber (ab Ubuntu 12.04) scheint das nicht richtig zu sein:
- Dies erfordert eine X-Sitzung, aber meine SSH-Sitzungen leiten möglicherweise eine X-Anzeige weiter oder nicht, und selbst diejenigen, die nicht dieselbe haben
$DISPLAY
. - Wenn keine X-Anzeige verfügbar ist
dbus-launch
, wird "Autolaunch-Fehler: X11-Initialisierung fehlgeschlagen" angezeigt und kein Dämon gestartet. - Auf der
dbus-launch
Manpage heißt es: „Die--autolaunch
Option wird als internes Implementierungsdetail betrachtet (…). Es gibt keinen wirklichen Grund, es außerhalb der libdbus-Implementierung zu verwenden. “
Does dbus-launch
oder ein anderes Werkzeug in der D-Bus - Suite Unterstützung Erfassen automatisch einen Lauf dbus-daemon
und eine Verbindung zu ihm? Die erforderlichen Informationen werden angezeigt, ~/.dbus/session-bus/$(cat /var/lib/dbus/machine-id)-${DISPLAY#*:}
wenn D-Bus mit einer X-Verbindung gestartet wird. Sie werden jedoch anscheinend nirgends gespeichert, wenn keine X-Verbindung verfügbar ist.
Soll ich meine eigene D-Bus-Sitzungsdatei erstellen? Sollte ich in diesem Fall eine Datei im ~/.dbus/session-bus
Verzeichnis verwenden? Ist der Pfad /var/lib/dbus/machine-id
zuverlässig und portabel?
Antworten:
DBus macht das Teilen der Einstellungen für den dbus-Daemon etwas schwierig.
Für mein Setup werden die Einstellungen von
dbus-launch --sh-syntax
in einer Datei gespeichert, die von der Quelle stammt.bash_rc
. Der Nachteil dabei ist, dass dieser Prozess nach jedem Neustart manuell ausgeführt wird.Es sollte jedoch sehr einfach sein, nach einem vorhandenen DBus-Dämon zu suchen. Angenommen, die Einstellungsdatei befindet sich unter $ HOME / .dbus_settings:
Ohne die
--autolaunch
Option glaube ich nicht, dass eine X-Windows-Verbindung benötigt wird.quelle