Anteriormente me he vuelto a conectar a una sesión de pantalla de larga duración con screen -dr control
. Sin embargo, a veces este comando no se volverá a conectar a la pantalla y en su lugar se bloqueará para siempre (más de 10 minutos después de lo cual aborté). Esto solo ocurre cuando la conexión SSH se cae inesperadamente y no cuando la pantalla se desconecta correctamente Ctrl-A d
. Otros interruptores, como screen -x
o screen -D -RR
que tampoco funcionan.
Esta publicación sugiere eliminar el PTY que contiene la sesión de pantalla, lo que hará que la pantalla complete su desconexión. Sin embargo, simplemente mata el shell desde el que screen -dr control
se llamó.
Por ejemplo:
$ ps -ef | grep control | grep -v grep
nomad 7387 7109 0 13:05 pts/50 00:00:00 screen -dr control
nomad 15299 1 0 Nov27 ? 00:13:47 SCREEN -S control
$ ps -ef | grep bash | grep 'pts/50'
nomad 7109 7108 0 12:49 pts/50 00:00:00 -bash
La publicación vinculada sugiere matar el bash
proceso con PID 7109. Esto también matará el screen -dr control
proceso con PID 7387. Después, todavía no puedo conectarme a la pantalla.
El proceso SCREEN -S control
que inició la sesión de pantalla tiene init
como padre el que obviamente no puedo matar.
¿Hay alguna manera de volver a adjuntar a la sesión de pantalla bloqueada?
Actualización: Esto sucede en CentOS 6.4 usando el kernel 2.6.32-358.6.1.el6.x86_64. Todos los shells son bash versión 4.1.2 (1) -release.
fuente
screen -ls
dice en esos casos "colgantes"?screen -d -r <session>
significa "separar y recuperar", por lo que no haberlo separado de primera mano no debería importar. (Y por hacerlo a menudo, no ...)Respuestas:
Creo que deberías intentarlo
la próxima vez también: la invocación enojada (mayúscula) debería obligarlo a desconectar esa otra sesión que está realizando su salto de red intermedio.
fuente
Como lo sugirió Jens Timmerman, la razón principal de este extraño comportamiento fue que me estaba conectando al servidor remoto usando SSH ProxyCommand y
ncat
. Después de eliminar elncat
en la máquina intermedia, puedo volver a conectar a la sesión de pantalla.fuente
Si este es un problema frecuente, también podría considerar usar mosh como reemplazo de ssh:
http://mosh.mit.edu
fuente