Como fazer com que a tela -R seja anexada à sessão separada mais jovem?

15

Estou usando a tela no debian lenny, e gostaria de usar a opção -R . De man screen :

   -R   attempts  to  resume  the  youngest  (in  terms  of creation time)
        detached screen session it finds.  If successful, all  other  com‐
        mand-line  options  are  ignored.   If no detached session exists,
        starts a new session using the specified options, just  as  if  -R
        had  not been specified.

No entanto, quando executo o screen -R , ele não se anexa à sessão mais jovem desanexada. Em vez disso, ele reclama que existem "várias telas adequadas" e que eu preciso escolher uma delas.

Estou faltando alguma coisa? Como faço isso funcionar como anunciado?

    
por Wim Coenen 26.08.2010 / 01:32

2 respostas

17

Tente usar screen -RR .

Exemplo:

$ screen -ls
There are screens on:
    5958.pts-3.sys01    (08/26/2010 11:40:43 PM)    (Detached)
    5850.pts-1.sys01    (08/26/2010 11:40:35 PM)    (Detached)
2 Sockets in /var/run/screen/S-sdn.

Note que a tela 5958 é a mais nova. Usar screen -RR conecta à tela 5958. As opções -RR são um pouco mais explicadas na documentação de -d -RR .

   -d -RR  Reattach a session and if necessary detach or  create  it.  Use
           the first session if more than one session is available.

Outro truque que costumo usar é usar -S para dar uma tag / etiqueta à tela. Então você pode reconectar usando essa tag sem ter que lembrar o que estava acontecendo em cada tela se a lista ficar pesada.

Exemplo (telas de inicialização para o vim e curl):

$ screen -dm -S curl
$ screen -dm -S vim 
$ screen -list

There are screens on:  
    11292.vim       (08/27/2010 12:02:53 AM)        (Detached)
    11273.curl      (08/27/2010 12:01:42 AM)        (Detached)

Observação: a opção -dm foi usada apenas para iniciar uma tela desanexada

E, posteriormente, você poderá se reconectar facilmente usando a tag curl .

# screen -R curl
    
por 27.08.2010 / 05:59
0

Eu uso a tela -R no gnome-terminal e, como você disse, se duas sessões estão rodando ao mesmo tempo, então o gnome-terminal sai imediatamente.

Eu resolvi isso executando

sh -c "screen -R || screen -D -RR"

isso funciona exatamente como você espera.

    
por 26.03.2011 / 04:31

Tags