Normalmente eu entro na minha caixa Linux a partir do meu laptop Windows usando PuTTY e executo a tela lá. Quando meus senhores corporativos decidiram atualizar meu laptop para o Windows 7, minhas sessões do PuTTY congelaram. Normalmente mato a sessão do PuTTY e, em seguida, reconecto a sessão da tela (se ela estiver desconectada) ou emito um "-d -r" se a sessão da tela não foi desconectada quando minha sessão do PuTTY congelou.
Meu problema é que tenho uma sessão de tela que, a princípio, se recusou a ser desconectada. Eu usaria:
screen -d -r 6313.sessionName
mas o comando simplesmente ficaria pendurado ali.
Descobri que no diretório /var/run/screen// havia "arquivos" correspondentes a cada uma das minhas sessões de tela. Percebi que o teimoso tinha 700 permissões enquanto os outros (que estavam desanexados) tinham 600 permissões.
Então mudei as permissões desse arquivo para 600. A tela agora o lista como "desanexado". No entanto, quando tento reconectá-lo, o comando, mais uma vez, simplesmente fica suspenso.
Usando
ps aux | grep 6313
mostra o estado do processo como "Ss", o que significa que está em um estado de suspensão interrompível. Isso não é diferente de qualquer outra sessão de tela separada que mostra o mesmo status do processo.
Não sei como recuperar esta sessão. Alguma sugestão?
Responder1
Quando uso screen
o comando, geralmente abro o soquete assim:
$ screen -S <SOCKET_NAME>
e quando quero anexar ou reconectar eu uso:
$ screen -x <SOCKET_NAME>
Responder2
Para desanexar uma sessão de tela, você deve usar Ctrl+ A+ D. Então, para reanexar a sessão, use screen -r <pid>
. Se você quiser se conectar a uma sessão de tela que está em uso, screen -dr <pid>
primeiro desanexe e depois reconecte a sessão de tela.