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.