Accedo a una máquina a través de múltiples sesiones de inicio de sesión. Las vidas de las sesiones pueden superponerse o no. En mi caso, estas sesiones de inicio de sesión siempre se realizan a través de SSH, pero también preferiría manejar sesiones locales.
A veces necesito D-Bus en estas sesiones, y quiero compartir la misma sesión de D-Bus en estas sesiones de inicio de sesión, para poder usar GVFS .
cual es la manera recomendada para hacer esto? No quiero interrumpir el uso de D-Bus que no conozco. He considerado usar
export $(dbus-launch --autolaunch $(cat /var/lib/dbus/machine-id))
pero (a partir de Ubuntu 12.04) esto no parece correcto:
- esto requiere una sesión X, pero mis sesiones SSH pueden o no reenviar una pantalla X, e incluso las que no tienen la misma
$DISPLAY
; - si no hay una pantalla X disponible, se
dbus-launch
queja de "Error de inicio automático: error de inicialización X11" y no inicia un demonio; - la
dbus-launch
página del manual dice que "La--autolaunch
opción se considera un detalle de implementación interna (...). De todos modos, no hay ninguna razón real para usarlo fuera de la implementación de libdbus ".
¿Es dbus-launch
compatible alguna otra herramienta de la suite D-Bus para detectar automáticamente un funcionamiento dbus-daemon
y conectarse a él? La información necesaria se encuentra ~/.dbus/session-bus/$(cat /var/lib/dbus/machine-id)-${DISPLAY#*:}
si D-Bus se inicia con una conexión X, pero no parece almacenarse en ningún lado si no hay una conexión X disponible.
¿Debo improvisar mi propio archivo de sesión de D-Bus? Si lo hago, ¿debo usar un archivo en el ~/.dbus/session-bus
directorio? ¿Es el camino /var/lib/dbus/machine-id
confiable y portátil?
Respuestas:
DBus hace que compartir la configuración del dbus daemon sea un poco complicado.
Para mi configuración, la configuración de
dbus-launch --sh-syntax
se guarda en un archivo que es fuente de.bash_rc
. La desventaja de esto es que, después de cada reinicio, ese proceso se realiza manualmente.Sin embargo, debería ser muy simple verificar si hay un demonio DBus existente. Digamos que el archivo de configuración está en $ HOME / .dbus_settings:
Sin la
--autolaunch
opción, no creo que se necesite una conexión X Windows.fuente