Você pode emitir a separação antes de anexar de outro terminal, por exemplo:
$ screen -list
$ screen -d -r ...
Eu uso o ambiente de desktop GNOME no FreeBSD. Eu tinha várias abas no terminal GNOME 2.26 e em cada aba eu tinha uma sessão screen (4.00.03) em andamento. Eu entrei em um dos servidores remotos com SSH e cat um arquivo grande e depois de um tempo, a sessão screen na guia do terminal GNOME foi interrompida. A saída de pstree é a seguinte:
$ pstree -p 1700
-+= 00001 root /sbin/init --
\-+- 01506 martint gnome-terminal
\-+= 01586 martin bash
\-+= 01699 martin screen
\-+= 01700 root screen
Existem dezenas de processos sob o PID 1700, que todos, incluindo o PID 1700, estão em estado inativo:
$ ps -p 01700 -o command,state
COMMAND STAT
screen Is
$
Desconectei a sessão SSH do servidor remoto e verifiquei também se a rolagem screen está desbloqueada. Existe uma maneira de restaurar esta screen sessão?
Você pode emitir a separação antes de anexar de outro terminal, por exemplo:
$ screen -list
$ screen -d -r ...
Tags gnu-screen