Com muita experimentação, consegui recuperar a sessão de tela da seguinte forma:
- Pesquise o PID do processo da tela do servidor: ps | tela grep
- Enviar ao servidor um sinal HUP: kill -1 < PID >
- Executar um cliente de tela: screen -r -d
Eu uso um túnel VPN para conectar-me à minha rede de trabalho e, em seguida, o SSH para conectar-me ao meu PC de trabalho que está executando o cygwin. Uma vez logado, posso anexar a uma sessão de tela e tudo funciona muito bem.
Agora, depois de um tempo, saio do meu computador e, mais cedo ou mais tarde, o tempo limite do túnel VPN é esgotado. A conexão SSH em cada extremidade eventualmente expira e eu finalmente volto para o meu computador para fazer algum trabalho. Teoricamente, isso deve ser uma simples questão de apenas reiniciar a VPN, reconectar via SSH e, em seguida, executar "screen -r -d".
No entanto, aparentemente, quando o daemon sshd expira no cygwin PC, ele deixa a sessão da tela em algum tipo de estado travado. Eu posso reproduzir um estado suspenso semelhante clicando na caixa de fechamento em uma janela do shell bash do cygwin enquanto ele está executando uma sessão de tela.
Existe alguma maneira de recuperar a sessão de tela assim que isso acontecer, para que eu não perca nada?
Tags ssh gnu-screen