Estaba usando irssi en la pantalla pero perdí la conexión. Después de volver a ingresar al servidor, ya no puedo conectarme a esa pantalla. screen -ls muestra que la pantalla ya está conectada.
Intenté screen -D para forzar la desconexión, y decía detach pero screen -ls todavía dice que está adjunto. Intenté screen -x y simplemente se cuelga allí.
[sub@server ~]$ screen -ls
There are screens on:
4033.poe (Detached)
7728.irssi (Attached)
2 Sockets in /var/run/screen/S-sub.
¿Qué puedo hacer ahora?
fuente
Le diste un nombre no predeterminado. Prueba esto:
screen -RD irssi
fuente
puedes probar:
siempre es una buena idea usar el nombre completo
pid.tty
fuente
screen
es conocido por no ser compatible con versiones anteriores. Si la versión descreen
se actualizó en el servidor, es posible que ya no pueda volver a conectar sesiones de pantalla anteriores.En ese caso, puede usar el viejo binario SCREEN para volver a adjuntar (siempre que su administrador de paquetes de distribución lo haya guardado en algún lugar) o eliminar la sesión por completo.
fuente
He tenido cierto éxito al enviar al proceso GNU / screen un SIGCHLD (que normalmente recibe cuando se cierra una ventana), esto lo obliga a tocar (y posiblemente recrear) el archivo de socket.
También tenga en cuenta que hay dos formas de invocar el
screen
ejecutable que solo difieren en el caso:SCREEN
es el componente del lado del servidor al que está intentando reconectarse, mientras quescreen
es el lado del cliente que baraja los datos entre su terminal y el lado del servidor. Por lo tanto, puede intentar matar la versión en minúsculas ...Por ejemplo, en lo siguiente puede ver que mi
screen
ySCREEN
procesos no se consideran padre e hijo, lo que indica que me he adjuntado a una sesión existente.Las sesiones nuevas se parecen más a esto:
fuente
kill
comando con un nombre aterrador como este: ¿kill -s SIGCHLD <PID>
dónde<PID>
está el número de ID del proceso (columna más a la izquierda en mi salida de ejemplo)Esto me sucedió mientras estaba usando vi, donde la sesión se congeló y me desconecté. Al intentar volver a conectar la pantalla usando screen -Arx, el proceso simplemente se bloquea.
Es posible que se esté ejecutando un proceso secundario similar que haga que la pantalla se cuelgue. Si recuerda uno en particular, enfóquese en eso, de lo contrario, para obtener una lista del proceso secundario que se ejecuta bajo su pantalla, haga lo siguiente:
Lo que mostrará los procesos hijos anidados:
Después de matar el proceso vi que causó el problema en primer lugar, pude volver a conectar la pantalla sin ningún problema. Probablemente también sea una buena idea eliminar cualquier proceso anterior que se haya vuelto a conectar a la pantalla. Solo usa:
No sé qué está haciendo la pantalla internamente, por qué vi causó que la pantalla se bloqueara, ni por qué matar el proceso vi me devolvió la pantalla. Me encontré con este problema con la pantalla en el pasado y probé lo que la mayoría de la gente recomendaba en este hilo sin suerte. Encontrar este problema en el proceso secundario es lo único que me ha funcionado y que ha funcionado de manera consistente.
fuente
fuente
Funcionó para mi. Tenía 3 pantallas diferentes, y he perdido 3 conexiones ssh diferentes. Después de volver a conectar, las pantallas todavía estaban conectadas, emití el comando anterior ... por supuesto, perdí mi conexión actual, pero era nueva. En la próxima reconexión, todas las pantallas se separaron.
Tenga en cuenta que si es un superusuario, debe usar la
--user
opción para matar solo a sus demonios ssh.fuente