Não é possível reconectar a uma sessão de tela após a conexão SSH ser descartada

15

Eu já anexei novamente a uma sessão de tela de longa duração com screen -dr control . No entanto, às vezes, esse comando não será reconectado à tela e, em vez disso, ficará suspenso para sempre (mais de 10 minutos após o qual eu abortei). Isso só acontece quando a conexão SSH é descartada inesperadamente e não quando a tela é adequadamente desconectada com Ctrl-A d . Outros comutadores, como screen -x ou screen -D -RR , também não funcionam.

Este post sugere para matar o PTY que mantém a sessão de tela que fará com que a tela complete sua desconexão. No entanto, ele simplesmente mata o shell do qual screen -dr control foi chamado.

Por exemplo:

$ ps -ef | grep control | grep -v grep
nomad     7387  7109  0 13:05 pts/50   00:00:00 screen -dr control
nomad    15299     1  0 Nov27 ?        00:13:47 SCREEN -S control

$ ps -ef | grep bash | grep 'pts/50'
nomad     7109  7108  0 12:49 pts/50   00:00:00 -bash

A postagem vinculada sugere a eliminação do processo bash com o PID 7109. Isso também eliminará o processo screen -dr control com o PID 7387. Depois disso, ainda não consigo me conectar à tela.

O processo SCREEN -S control que iniciou a sessão de tela tem init como seu pai, o que obviamente não posso matar.

Existe uma maneira de se reconectar à sessão de tela suspensa?

Atualização: Isso acontece no CentOS 6.4 usando o kernel 2.6.32-358.6.1.el6.x86_64. Os shells são todos bash versão 4.1.2 (1) -release.

    
por Viktor Rosenfeld 02.12.2013 / 14:11

3 respostas

0

Como sugerido por Jens Timmerman, a principal razão para esse comportamento estranho foi que eu estava me conectando ao servidor remoto usando o SSH ProxyCommand e ncat . Depois de matar o ncat na máquina intermediária, eu posso recolocar a sessão de tela.

    
por 04.12.2015 / 14:28
5

Eu acho que você deveria tentar

screen -DR 

da próxima vez também - a invocação com raiva (maiúscula) deve forçá-lo a desconectar a outra sessão sendo mantida pelo seu salto intermediário de netcat.

    
por 31.12.2013 / 00:28
-2

Se este for um problema freqüente, você também pode considerar usar mosh como uma substituição ssh:

link

    
por 28.12.2013 / 22:51