Estou tentando executar vários aplicativos Gnome via X11 Forwarding e SSH. Algumas aplicações farão com que a aplicação 'dbus-launch' seja gerada primeiro. O problema é que o dbus-launch não fecha quando o aplicativo X é encerrado e, portanto, deve ser eliminado antes que a sessão SSH possa ser fechada corretamente.
Suponho que o problema é que os aplicativos X / Gnome não podem se conectar ao daemon de 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. Tenho o encaminhamento X11 ativado, tudo parece funcionar bem.
[me@host ~]$ gnome-calculator &
[1] 4803
(aqui o programa gcalctool inicia e é exibido no meu servidor X de remoção (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 dbus-launch ainda está ativo. E a pior parte, isso impede que a conexão SSH seja fechada 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 de barramento de mensagens sem impedimentos? Procurei no / etc / dbus-1 por respostas, mas não sei o que procurar.
Obrigado antecipadamente pela ajuda.
[EDITAR]
OK, estou percebendo que estou enfrentando um problema comum. Parece que este é um comportamento bastante comum, mas sem uma boa solução. Estou enfrentando o travamento do SSH porque o dbus-launch ainda está ativo no tty. Mas aparentemente não há uma boa maneira de fazer com que o dbus-launch ocorra silenciosamente.
Olhar para /etc/X11/xinit/xinitrc.d/00-start-message-bus.sh fornece algumas dicas sobre o que deve acontecer com uma sessão X "normal". Obviamente, isso não funciona ao invocar 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 desagradável. Existem soluções melhores por aí? Qual é a maneira correta de executar aplicativos remotos X11 sem o dbus atrapalhar?