Cómo utilizar el comando screen en Linux
Screen es un comando muy útil que nos da la posibilidad de utilizar varias sesiones Shell(SSH) desde una única sesión SSH. Esto significa que no necesitas abrir explícitamente diferentes sesiones SSH para realizar varias operaciones en paralelo.
La pantalla también te ayuda a continuar el proceso aunque se rompa la conexión con la sesión SSH. Por ejemplo, si has iniciado un proceso concreto y se rompe la conexión, el proceso se detiene, pero si inicias ese proceso dentro de la pantalla y lo separas de esa pantalla, el proceso seguirá en marcha y podrás volver a conectarte a la pantalla y ver tu proceso en marcha.
Puedes crear tantas pantallas como admita el sistema operativo desde una única sesión SSH. Puedes listar las pantallas disponibles, adjuntarte a cualquiera de ellas y detenerlas también.
Requisitos previos
- Servidor o escritorio Ubuntu
- Acceso a Sudo
Qué vamos a hacer
- Instalar la pantalla
- Conocer los atajos de Screen
- Ver el uso del comando Screen
Instalar Screen
Instalar el comando screen es bastante sencillo. Para instalar el screen en el servidor de Ubuntu utiliza el siguiente comando. Normalmente screen viene por defecto con Ubuntu Linux.
sudo apt-get install screen
Para verificar si el screen está disponible en los sistemas o no y para comprobar su versión utiliza el siguiente comando.
screen –versión
Conocer los accesos directos de la pantalla
Para conocer los accesos directos disponibles dentro de la pantalla simplemente ejecuta el comando ‘screen’, esto abrirá la sesión de pantalla
screen
A continuación, pulsa el botón «control» y el botón «a» juntos y luego el botón «? Esto te dará una pantalla donde se mencionan todos los atajos.
control+a ?
Atajos:
- control+a c –> Para borrar la pantalla
- control+a control+t — > Para mostrar la hora
- control+a v –> Comprobar la versión de la pantalla
Ahora pulsa la «barra espaciadora» para volver a la pantalla.
Ver el uso del comando de pantalla
Para crear tu primera pantalla utiliza el siguiente comando
screen -S mi-primera-pantalla
Para separar la pantalla sin retenerla escribe el comando «exit
exit
Puedes utilizar el siguiente comando para listar las pantallas que están disponibles
screen -ls
Ahora vamos a crear nuestra segunda pantalla, que retendremos para poder volver a adjuntarla.
Utiliza el siguiente comando para crear tu segunda pantalla.
screen -S mi-segunda-pantalla
Ahora, si ejecutas cualquier proceso dentro de esta pantalla y te separas de ella, tu proceso seguirá ejecutándose y estará disponible cuando te vuelvas a conectar a ella. Para probar este escenario puedes ejecutar el comando «top» en esta pantalla.
Para separar la pantalla de modo que esté disponible y podamos volver a conectarnos a ella utiliza la siguiente combinación, pulsa el botón «control» y el botón «a» juntos y luego el botón «d». Esta vez acabas de desprenderte de la pantalla y la pantalla estará disponible para que puedas volver a unirte a ella.
control+a d
Enumera las pantallas y podrás ver que tu primera pantalla se ha terminado y la segunda se ha desprendido. Esto significa que no puedes volver a unirte a la pantalla terminada, pero puedes volver a unirte a la pantalla separada. Ahora, si vuelves a adjuntarte a la segunda pantalla, verás que el «top» sigue funcionando.
screen -ls
Ahora vamos a crear varias pantallas e intentar adjuntarlas a cualquiera de ellas.
screen -S 1 screen -S 2 screen -S 3
Puedes utilizar el siguiente comando para adjuntarte a la pantalla si sólo hay una pantalla disponible.
Si hay varias pantallas disponibles, el siguiente comando no funcionará.
screen -r
Para conectarte a una pantalla concreta de las múltiples pantallas, tienes que pasar el ID/Nombre de la pantalla junto con el comando «screen -r».
screen -r 2232.1
Ahora, si quieres eliminar una pantalla concreta, puedes utilizar el siguiente comando
screen -XS nombre-de-pantalla-id quit
Pero si matas la pantalla por el ID del proceso, la pantalla estará muerta y podrás seguir viéndola cuando enumeres las pantallas, pero no podrás volver a adjuntar las pantallas muertas.
kill -9 pantalla-id-proceso
Para eliminar las pantallas muertas puedes utilizar «-wipe» como opción al comando screen de la siguiente manera
screen -wipe
Para terminar o matar todas las pantallas puedes utilizar el siguiente comando.
killall screen