SSH não finalizado após a saída quando existe o programa X Forward


9

Depois de executar os programas X no SSH, o SSH não termina após a saída do shell (tem que usar, por exemplo, CtrlCpara matá-lo).

Meu palpite é que, embora o programa X já saia, ainda resta alguma "conexão" (não liberada). As exceções que encontrei agora são gtk-demoe acroread.

Alguém sabe a razão? Isso é um problema com a configuração do ssh {, d}?


11
Você pode testar isso por si mesmo. Execute ssh com -v e ele reportará as conexões X11 abertas e fechadas.
Kyle Jones

@KyleJones THX, parece que esse é o problema (duas "conexões" liberadas depois de C-cpressionadas).
yuyichao 6/02/12

Eu tenho o mesmo problema no SLES11 em qualquer janela X11. Como você chegou ao dbus?
Nils

Você pode simplesmente verificar o processo em execução como você (se não houver outras sessões ativas). Eu uso systemd e permitiu-nos sshd (configuração pam), de modo que todo o processo na sessão ssh está no mesmo cgroup, o que torna muito fácil de verificar ~~.
yuyichao

Respostas:


5

Iniciar o programa X provavelmente inicia um processo em segundo plano que não termina quando você fecha o programa (ou o programa em si não termina corretamente). Veja aqui uma explicação do que acontece.

Para corrigir isso, você pode tentar descobrir quais processos ainda estão em execução e impedir que eles sejam iniciados quando você efetuar login via SSH ou simplesmente matá-los antes de sair. Certamente você pode simplesmente matar a conexão SSH depois de fazer o logout.


K, o problema é que o processo dbus (gconf) ainda está em execução. (obrigado a systemd-cgls~~) (tentei killall -KILLo programa em si, pensando que poderia ter algum processo em segundo plano antes, mas esse não parece ser o caso.). Então, existe uma maneira de fazer as coisas bem? (ex .: kill dbus (gconf) automaticamente) THX
yuyichao 06/02

11
Você poderia colocar killall dbusalgo assim no seu .logout, mas isso provavelmente atrapalharia outras coisas (ou seja, quando você estiver conectado localmente).
Lars Kotthoff

Hmm, parece que preciso fazer isso manualmente (ou seja, nenhuma opção direta para isso). Pelo menos eu já estou usando kill-session=1e espero systemd pode me dizer qual é o processo de direito de matar ~~~ THX (ou seja, os processos não matar em outras sessões.)
yuyichao
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.