Como posso retomar uma tela que não consegui separar?

6

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?

    
por Eduard Florinescu 30.03.2015 / 14:07

3 respostas

10

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
    
por 30.03.2015 / 14:09
7

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.

    
por 30.03.2015 / 15:09
6

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.

    
por 30.03.2015 / 16:57