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:
- Navega al directorio donde se almacenan los sockets de screen:
cd /run/screen/S-$(whoami)
- Lista los archivos en ese directorio:
ls
- 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
- 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
- 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. - 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.