Bagaimana cara membuat layar -R melampirkan sesi terpisah termuda?

16

Saya menggunakan layar pada lianny debian, dan saya ingin menggunakan -Ropsi. Dari 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.

Namun, ketika saya menjalankannya screen -Rtidak benar-benar melampirkan sesi terpisah termuda. Sebaliknya, itu mengeluh bahwa ada "beberapa layar yang cocok" dan saya harus memilih salah satunya.

Apakah saya melewatkan sesuatu? Bagaimana cara membuat ini berfungsi seperti yang diiklankan?

Wim Coenen
sumber
1
Note: Time-based session selection is a Debian addition.==> apakah Anda menggunakan default screendari Debian atau apakah Anda mengkompilasi sendiri?
JanC
@Jan Claeys: Saya pertama kali mencoba binary Debian Lenny, kemudian membangun layar dari sumber terbaru di git: //git.savannah.gnu.org/screen.git. Perilaku itu sama.
Wim Coenen

Jawaban:

18

Coba gunakan screen -RR.

Contoh:

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

Perhatikan bahwa layar 5958 adalah yang termuda. Menggunakan screen -RRmenghubungkan ke layar 5958. -RROpsi agak dijelaskan lebih lanjut dalam dokumentasi untuk -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.

Trik lain yang sering saya gunakan adalah menggunakan -Suntuk memberi layar tag / label. Kemudian Anda dapat memasang kembali menggunakan tag itu tanpa harus mengingat apa yang terjadi di setiap layar jika daftar menjadi sulit.

Contoh (Luncurkan layar untuk vim dan 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)

Catatan: -dmOpsi ini hanya digunakan untuk memulai layar terpisah

Dan kemudian, di kemudian hari, Anda dapat dengan mudah menyambung kembali menggunakan tag curl.

# screen -R curl
David Narayan
sumber
Bukankah screen -D -RRlebih baik dari itu screen -d -RR?
niutech
Untuk menghemat waktu pada tombol shift, screen -rrberfungsi juga.
Fmstrat
0

Saya menggunakan layar -R di terminal gnome dan, seperti yang Anda katakan, jika 2 sesi berjalan pada saat yang sama, maka terminal gnome berhenti segera.

Saya menyelesaikannya dengan menjalankan

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

ini berfungsi seperti yang Anda harapkan.


sumber
atau cukup "screen -RR" seperti yang disarankan oleh David: D