Jak zrobić screen -R dołączony do najmłodszej odłączonej sesji?

17

Używam ekranu na debian lenny i chciałbym użyć -Ropcji. Od 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.

Jednak gdy uruchamiam screen -R, nie dołącza się do najmłodszej odłączonej sesji. Zamiast tego narzeka, że ​​istnieje „kilka odpowiednich ekranów” i że muszę wybrać jeden z nich.

Czy coś brakuje? Jak sprawić, by działało tak, jak w reklamie?

Wim Coenen
źródło
1
Note: Time-based session selection is a Debian addition.==> czy używasz domyślnego screenz Debiana czy sam go skompilowałeś?
JanC
@Jan Claeys: Najpierw wypróbowałem plik binarny Debiana Lenny, a następnie budowałem ekran z najnowszego źródła na git: //git.savannah.gnu.org/screen.git. Zachowanie było takie samo.
Wim Coenen

Odpowiedzi:

19

Spróbuj użyć screen -RR.

Przykład:

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

Zauważ, że ekran 5958 jest najmłodszy. Używanie screen -RRłączy się z ekranem 5958. -RROpcje są nieco wyjaśnione w dokumentacji dla -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.

Inną sztuczką, której często używam, jest -Snadanie ekranowi znacznika / etykiety. Następnie możesz ponownie podłączyć przy użyciu tego znacznika, bez konieczności pamiętania, co działo się na każdym ekranie, jeśli lista staje się nieporęczna.

Przykład (ekrany uruchamiania dla vima i 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)

Uwaga: -dmOpcja została właśnie użyta do uruchomienia odłączonego ekranu

A później, możesz później łatwo połączyć się ponownie przy użyciu tagu curl.

# screen -R curl
David Narayan
źródło
Nie jest screen -D -RRlepsze niż screen -d -RR?
niutech
screen -rrDziała również, aby zaoszczędzić trochę czasu na klawiszu Shift .
Fmstrat
0

Używam screen -R w gnome-terminal i, jak powiedziałeś, jeśli 2 sesje są uruchomione w tym samym czasie, wtedy gnome-terminal natychmiast kończy działanie.

Rozwiązałem to, biegając

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

działa tak, jak się spodziewasz.


źródło
lub po prostu „screen -RR”, jak sugerował David: D