Claro, com
screen -d -r
Você pode escolher a tela qual para desanexar e reconectar como de costume encontrando o pid (ou nome completo) com screen -list
.
screen -d -r 12345
Eu uso a tela Consoles visuais de tela .
Para desanexar uma tela eu preciso pressionar Ctrl + A seguido por D mas em algum momento uma sessão é fechada sem desanexá-la.
Aparece como (Attached)
on screen -list
:
eduard@eduard-X:~$ screen -list
There are screens on:
4561.pts-46.eduard-X (30.03.2015 14:48:51) (Attached)
4547.pts-46.eduard-X (30.03.2015 14:48:33) (Detached)
4329.pts-41.eduard-X (30.03.2015 14:46:28) (Attached)
3995.pts-30.eduard-X (30.03.2015 14:30:01) (Detached)
Se eu tentar restaurá-lo, a tela responderá que não há tela para continuar:
eduard@eduard-X:~$ screen -r 4329
There is a screen on:
4329.pts-41.eduard-X (30.03.2015 14:46:28) (Attached)
There is no screen to be resumed matching 4329.
Ainda posso retomar uma tela que não desanexei adequadamente?
Você deve criar telas com nomes.
$ screen -S foo
$ screen -list
There are screens on:
16994.foo (03/30/15 14:05:13) (Detached)
20082.q (12/17/14 18:06:44) (Detached)
11008.w (11/12/14 10:52:43) (Detached)
1199.irc (11/12/14 01:34:40) (Detached)
Depois, você pode reconectar telas com
$ screen -dr foo
(que será anexado ao 16994.foo, desanexando qualquer outro processo) ou
$ screen -x i
(que será anexado ao 1999.irc, que irá compartilhar a tela com outro processo)
As telas de nomeação são importantes.
Após um comentário sugerido na postagem, usei:
screen -x <session id>
Na página de manual : tela -x
-x
Attach to a not detached screen session. (Multi display mode). Screen refuses to attach from within itself. But when cascading multiple screens, loops are not detected; take care.
Também pesquisando um pouco, descobri outros usos para essa opção, Usando a tela para A interação remota explica que você pode se conectar a partir de vários terminais, um tipo de sistema de compartilhamento de console remoto, praticamente você pode ver e digitar remotamente em um ambiente compartilhado.
Isso pode ser usado ao ensinar alunos ou configurar coisas com um colega.
Você pode tentar conectando-se à mesma tela a partir de dois terminais diferentes com o mesmo id de tela ( screen -x 4329
). O que você digita pode ser visto no outro e vice-versa.