Guía para solucionar el error "There is no screen to be resumed matching" en la aplicación screen de Linux

Artículos Guías Manuales Sistemas Linux Windows Binario 0

El error "There is no screen to be resumed matching" ocurre en la aplicación screen de Linux cuando intentas reanudar una sesión que no existe o cuyo nombre no coincide con el especificado. A continuación, se detalla un paso a paso para diagnosticar y resolver este problema:

Paso 1: Verifica las sesiones activas

Para listar todas las sesiones activas de screen, ejecuta el siguiente comando en tu terminal:

screen -ls

El resultado mostrará todas las sesiones activas junto con sus nombres y estados. Por ejemplo:

There is a screen on:
    12345.my_session_name   (Detached)
1 Socket in /run/screen/S-username.

Si no aparece ninguna sesión, significa que actualmente no hay ninguna activa.

Paso 2: Asegúrate de usar el nombre correcto

Cuando quieras reanudar una sesión, utiliza el nombre exacto que aparece en la salida del comando anterior. El formato habitual es <ID>.<nombre_de_la_sesión>.

Para reanudar la sesión, ejecuta:

screen -r <ID>.<nombre_de_la_sesión>

Por ejemplo:

screen -r 12345.my_session_name

Paso 3: Maneja sesiones desconectadas parcialmente

Si aparece el mensaje:

There is a screen on:
    12345.my_session_name   (Attached)

Esto significa que la sesión está actualmente conectada a otro terminal. Puedes forzar la reconexión con:

screen -d -r <ID>.<nombre_de_la_sesión>

El parámetro -d desconecta la sesión de cualquier otro terminal antes de reanudarla.

Paso 4: Elimina sockets huérfanos

En algunos casos, puede haber sockets antiguos que impiden que la sesión se liste o reanude correctamente. Para solucionarlo:

  1. Navega al directorio donde se almacenan los sockets de screen:

    cd /run/screen/S-$(whoami)
  2. Lista los archivos en ese directorio:

    ls
  3. Si encuentras sockets antiguos y estás seguro de que no hay sesiones activas, elimínalos:

    rm -f <socket_name>

Paso 5: Reinicia el servicio de usuario (opcional)

Si el problema persiste y está relacionado con el entorno de usuario, intenta reiniciar tu sesión o el sistema.

Buenas prácticas para evitar este error

  1. Asigna nombres significativos a las sesiones: Cuando crees una sesión de screen, especifica un nombre usando el parámetro -S:

    screen -S nombre_significativo
  2. Cierra las sesiones correctamente: Para evitar sockets huérfanos, asegúrate de salir de las sesiones con el comando exit antes de cerrar el terminal.
  3. Automatiza la gestión de sesiones: Usa scripts para listar, crear o reanudar sesiones de manera automática.

Siguiendo estos pasos, deberías poder resolver el error "There is no screen to be resumed matching" y prevenir que vuelva a ocurrir.