Comment associer écran -R à la plus jeune session détachée?

17

J'utilise screen sur debian lenny et j'aimerais utiliser l' -Roption. 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.

Cependant, lorsque je l'exécute, screen -Ril ne s'attache pas réellement à la plus jeune session détachée. Au lieu de cela, il se plaint qu'il existe "plusieurs écrans appropriés" et que je dois en choisir un.

Suis-je en train de manquer quelque chose? Comment faire pour que cela fonctionne comme annoncé?

Wim Coenen
la source
1
Note: Time-based session selection is a Debian addition.==> utilisez-vous la valeur screenpar défaut de Debian ou en avez-vous compilé une vous-même?
JanC
@Jan Claeys: J'ai d'abord essayé le binaire Debian Lenny, puis j'ai créé l'écran à partir de la dernière source sur git: //git.savannah.gnu.org/screen.git. Le comportement était le même.
Wim Coenen

Réponses:

19

Essayez d'utiliser screen -RR.

Exemple:

$ 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.

Notez que l'écran 5958 est le plus jeune. Utilisation de la screen -RRconnexion à l'écran 5958. Les -RRoptions sont expliquées plus en détail dans la documentation 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.

Une autre astuce que j'utilise souvent est de -Sdonner à l'écran une étiquette / étiquette. Ensuite, vous pouvez rattacher à l'aide de cette balise sans avoir à vous rappeler ce qui se passait dans chaque écran si la liste devient trop lourde.

Exemple (écrans de lancement pour vim et 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)

Remarque: L' -dmoption vient d'être utilisée pour démarrer un écran détaché

Et puis, à une date ultérieure, vous pourrez facilement vous reconnecter à l'aide de la balise curl.

# screen -R curl
David Narayan
la source
N'est-ce pas screen -D -RRmieux que screen -d -RR?
niutech
Pour gagner du temps sur la touche Maj, ça screen -rrmarche aussi.
Fmstrat
0

J'utilise l'écran -R dans gnome-terminal et, comme vous l'avez dit, si 2 sessions s'exécutent en même temps, alors gnome-terminal se ferme immédiatement.

Je l'ai résolu en courant

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

cela fonctionne exactement comme vous vous y attendez.


la source
ou simplement "screen -RR" comme suggéré par David: D