Estou trabalhando em um servidor Debian Jessie remoto. Iniciei uma sessão de tela, comecei a executar um script e fui desconectado por um tempo limite de rede.
Agora eu entrei novamente e quero retomar a sessão.
É o que vejo quando listo as telas:
$ screen -ls
There are screens on:
30608.pts-8.myserver (11/03/2015 08:47:58 AM) (Attached)
21168.pts-0.myserver (11/03/2015 05:29:24 AM) (Attached)
7006.pts-4.myserver (10/23/2015 09:05:45 AM) (Detached)
18228.pts-4.myserver (10/21/2015 07:50:49 AM) (Detached)
17849.pts-0.myserver (10/21/2015 07:43:53 AM) (Detached)
5 Sockets in /var/run/screen/S-me.
Parece que estou anexado a duas telas ao mesmo tempo.
Agora quero retomar a sessão que estava executando antes, para ver os resultados do meu script:
$ screen -r 30608.pts-8.myserver
There is a screen on:
30608.pts-8.OpenPrescribing (11/03/2015 08:47:58 AM) (Attached)
There is no screen to be resumed matching 30608.pts-8.myserver.
Por que não consigo me reconectar?
Eu tenho o mesmo problema com a outra tela:
$ screen -r 21168.pts-0.myserver
There is a screen on:
21168.pts-0.OpenPrescribing (11/03/2015 05:29:24 AM) (Attached)
There is no screen to be resumed matching 21168.pts-0.myserver.
fonte
screen -x
,screen -rd
é anexar a ela depois de removê-la de todos os terminais aos quais foi conectada. No caso do OP, eu concordo que o último é provavelmente preferido, mas no caso geral, não necessariamente. Eu geralmente uso-xR
para anexar ou criar se não houver nada para anexar.De acordo com o manual, você pode "retomar" apenas as telas destacadas :
O que você quer é esta opção:
fonte
-x
uma sessão ainda será anexado 'em algum lugar'. Para assumir completamente a sessão, deve-se usar -d | -D (opções de desanexação) junto com -r | -R (opções de recolocação).Anexar a tela com opções
-rD
Do manual:
fonte