Estoy intentando ejecutar varias aplicaciones de Gnome a través de X11 Forwarding y SSH. Algunas aplicaciones harán que la aplicación 'dbus-launch' se genere primero. El problema es que dbus-launch no se cierra cuando se cierra la aplicación X y, por lo tanto, debe eliminarse antes de que la sesión SSH pueda cerrarse correctamente.
Supongo que el problema es que las aplicaciones X / Gnome no pueden conectarse con el demonio del bus de mensajes principal y, por lo tanto, deben lanzar su propia copia. ¿Cómo puedo arreglar esto? ¿O qué me estoy perdiendo?
Aquí hay un ejemplo. Tengo habilitado el reenvío X11, todo parece funcionar bien.
[me@host ~]$ gnome-calculator &
[1] 4803
(aquí se inicia el programa gcalctool y se muestra en mi servidor X de eliminación (Xming))
[me@host ~]$ ps
PID TTY TIME CMD
4706 pts/0 00:00:00 bash
4803 pts/0 00:00:00 gnome-calculator
4807 pts/0 00:00:00 dbus-launch
4870 pts/0 00:00:00 ps
(ahora, después de cerrar la aplicación gcalctool en la sesión remota)
[me@host ~]$ ps
PID TTY TIME CMD
4706 pts/0 00:00:00 bash
4807 pts/0 00:00:00 dbus-launch
4898 pts/0 00:00:00 ps
Tenga en cuenta que dbus-launch todavía está activo. Y la peor parte, esto evita que la conexión SSH se cierre correctamente hasta que se cierre.
Tenga en cuenta que el demonio de mensajes de todo el sistema se está ejecutando, como se puede ver aquí:
[me@host ~]$ ps ax
4696 ? Ssl 0:00 dbus-daemon --system
¿Que me estoy perdiendo aqui? Nunca he visto este comportamiento antes. Presumiblemente, ¿solo he visto aplicaciones sin problemas que puedan conectarse al demonio del bus de mensajes? He buscado respuestas en / etc / dbus-1, pero no sé qué buscar.
Gracias de antemano por la ayuda.
[EDITAR]
OK, me estoy dando cuenta de que estoy experimentando un problema común. Parece que este es un comportamiento bastante común, pero sin una buena solución. Estoy experimentando el bloqueo de SSH porque dbus-launch todavía está activo en el tty. Pero aparentemente no hay una buena manera de lograr que el lanzamiento de dbus ocurra en silencio.
Mirando /etc/X11/xinit/xinitrc.d/00-start-message-bus.sh da una idea de lo que se supone que sucederá con una sesión X "normal". Por supuesto, esto no funciona cuando solo se invoca una aplicación X en un servidor X remoto.
Como solución temporal, he agregado esto a mi .bash_logout:
# ~/.bash_logout
pkill -u $USER -t `tty | cut -d '/' -f 3,4` dbus-launch
Esto permitirá que la sesión SSH se cierre, pero se siente muy torpe. ¿Hay alguna solución mejor por ahí? ¿Cuál es la forma correcta de ejecutar aplicaciones X11 remotas sin que dbus se interponga en el camino?