Як зробити екран -R приєднати до наймолодшого окремого сеансу?


17

Я використовую екран на debian lenny, і я хотів би скористатися цим -Rваріантом. Від 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.

Однак, коли я запускаю, screen -Rвін насправді не приєднується до наймолодшого окремого сеансу. Натомість скаржиться, що є "кілька підходящих екранів" і що мені потрібно вибрати один з них.

Я щось пропускаю? Як зробити цю роботу рекламованою?


1
Note: Time-based session selection is a Debian addition.==> Ви використовуєте за замовчуванням screenDebian або ви склали його самостійно?
JanC

@Jan Claeys: Спершу я спробував двійковий файл Debian lenny, потім створив екран із останнього джерела на git: //git.savannah.gnu.org/screen.git. Поведінка була однаковою.
Вім Коен

Відповіді:


19

Спробуйте використовувати screen -RR.

Приклад:

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

Зауважте, що екран 5958 - наймолодший. Використання screen -RRпідключень до екрану 5958. -RRПараметри дещо далі пояснюються в документації до -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.

Ще один трюк, який я часто використовую, - -Sце надати екрану тег / ярлик. Тоді ви можете повторно вкласти тег, не пам'ятаючи, що відбувається на кожному екрані, якщо список стає непростим.

Приклад (Запуск екранів для vim та 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)

Примітка. Цей -dmпараметр був просто використаний для запуску окремого екрана

А потім, на більш пізньому терміні, ви можете легко підключитися знову, використовуючи тег curl.

# screen -R curl

Хіба не screen -D -RRкраще screen -d -RR?
niutech

Щоб заощадити деякий час на клавіші Shift screen -rr, теж працює.
Фмстрат

0

Я використовую екран -R в gnome-терміналі, і, як ви вже сказали, якщо 2 сесії працюють одночасно, то gnome-термінал негайно припиняється.

Я вирішив це бігом

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

це працює так, як ви очікуєте.


або просто "екран -RR", як запропонував Девід: D
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.