Estoy usando pantalla en Debian Lenny, y me gustaría usar el -R
opción. 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.
Sin embargo, cuando ejecuto screen -R
en realidad no se adjunta a la sesión separada más joven. En cambio, se queja de que hay "varias pantallas adecuadas" y de que tengo que elegir una de ellas.
¿Me estoy perdiendo de algo? ¿Cómo hago para que esto funcione como se anuncia?
Intente usar screen -RR
.
Ejemplo:
$ 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.
Tenga en cuenta que la pantalla 5958 es la más joven. Utilizando screen -RR
se conecta a la pantalla 5958. El -RR
options se explica algo más en la documentación 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.
Otro truco que uso a menudo es usar -S
para darle a la pantalla una etiqueta. Luego, puede volver a adjuntar usando esa etiqueta sin tener que recordar lo que sucedía en cada pantalla si la lista se vuelve difícil de manejar.
Ejemplo (pantallas de inicio para vim y 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)
Nota la -dm
opción se utilizó para iniciar una pantalla separada
Y luego, en una fecha posterior, puede volver a conectarse fácilmente usando la etiqueta curl
.
# screen -R curl
Utilizo screen -R en gnome-terminal y, como dijiste, si 2 sesiones se están ejecutando al mismo tiempo, gnome-terminal se cierra inmediatamente.
Lo resolví corriendo
sh -c "screen -R || screen -D -RR"
esto funciona tal como esperabas.