Eu estou tentando executar vários aplicativos Gnome via X11 Forwarding e SSH. Alguns aplicativos farão com que o aplicativo 'dbus-launch' seja gerado primeiro. O problema é que o lançamento do dbus não fecha quando o aplicativo X é encerrado e, portanto, deve ser eliminado antes que a sessão do SSH possa ser fechada corretamente.
Eu assumo que o problema é que os aplicativos X / Gnome não podem se conectar com o daemon do barramento de mensagens principal e, portanto, devem iniciar sua própria cópia? Como posso consertar isso? Ou o que estou perdendo?
Aqui está um exemplo. Eu tenho X11 Forwarding habilitado, tudo parece funcionar bem.
[me@host ~]$ gnome-calculator &
[1] 4803
(aqui o programa gcalctool é iniciado e é exibido no meu servidor X remove (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
(agora, depois de fechar o aplicativo gcalctool na sessão 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
Observe que o lançamento do dbus ainda está ativo. E a pior parte, isso impede que a conexão SSH feche corretamente até que seja eliminada.
Observe que o daemon de mensagens do sistema está em execução, como pode ser visto aqui:
[me@host ~]$ ps ax
4696 ? Ssl 0:00 dbus-daemon --system
O que estou perdendo aqui? Eu nunca vi esse comportamento antes. Presumivelmente, eu só vi aplicativos que podem se conectar ao daemon do barramento de mensagens sem impedimentos? Eu procurei em / etc / dbus-1 por respostas, mas não sei o que procurar.
Agradecemos antecipadamente pela ajuda.
[EDITAR]
OK, estou percebendo que estou passando por um problema comum. Parece que este é um comportamento bastante comum, mas sem uma boa solução. Estou experimentando o SSH travar porque o lançamento do dbus ainda está ativo no tty. Mas aparentemente não há uma boa maneira de fazer com que o lançamento do dbus aconteça em silêncio.
Observar o /etc/X11/xinit/xinitrc.d/00-start-message-bus.sh dá alguma pista sobre o que deve acontecer com uma sessão X "normal". Isso, obviamente, não funciona quando se está apenas invocando um aplicativo X para um servidor X remoto.
Como solução temporária, adicionei isso ao meu .bash_logout:
# ~/.bash_logout
pkill -u $USER -t 'tty | cut -d '/' -f 3,4' dbus-launch
Isso permitirá que a sessão SSH seja encerrada, mas parece ruim. Existe alguma solução melhor por aí? Qual é a maneira correta de executar aplicativos X11 remotos sem que o dbus atrapalhe?