Diferencias entre las revisiones 15 y 16
Versión 15 con fecha 2020-10-08 19:14:48
Tamaño: 4885
Comentario:
Versión 16 con fecha 2020-10-08 19:16:36
Tamaño: 5034
Comentario:
Los textos eliminados se marcan así. Los textos añadidos se marcan así.
Línea 125: Línea 125:

'''TIP''' Pueden correr los comandos en '''background (&)''' si quieren utilizar la misma sesión para ejecutar simultaneamente otros comandos.

Terminales Virtuales

Un multiplexor de terminal no es más que un programa que permite a su usuario multiplexar una o más sesiones virtuales, por lo que el usuario puede tener varias sesiones dentro de un solo terminal. Una de las características más útiles de estos programas es el hecho de que los usuarios pueden adjuntar y desconectar dichas sesiones.

Varias son las opciones y en esta wiki te mostramos algunas de ellas.

Más información en: https://linuxconfig.org/an-introduction-to-terminal-multiplexers

GNU Screen

Documentación

https://www.gnu.org/software/screen/screen.html
https://linuxize.com/post/how-to-use-linux-screen/
https://www.geeksforgeeks.org/screen-command-in-linux-with-examples/

Instalación

En Debian y sus derivados:

# apt install screen

Comandos básicos

Ayuda de '''man'''

$ man screen

Listar sesiones

En este caso no hay sesiones:

$ screen -ls
No Sockets found in /run/screen/S-avaldes.

Crear una sesión

Crear una sesión y luego volver a listar las sesiones. Se debería ver la sesión recién creada y con el estado adjuntado (Attached):

$ screen

$ screen -ls
There is a screen on:
        17239.pts-0.eustace     (10/08/2020 03:27:54 PM)        (Attached)

Salir de la sesión ('''Detach''')

Salir de las esión pero sin cerrarla y por tanto los programas que tengamos corriendo en la sesión seguirán ejecutándose. Listamos nuevamente las sesiones y veremos que la sesión de la cual recién salimos (identificada por 17239.pts-0.eustace) aún existe pero con el estado Detached. Podemos hacer lo mismo con la combinación de teclas: Ctrl + a + d

$ screen -d
[remote detached from 17239.pts-0.eustace]

$ screen -ls
There is a screen on:
        17239.pts-0.eustace     (10/08/2020 03:27:53 PM)        (Detached)
1 Socket in /run/screen/S-avaldes.

Reconectar ('''Reattach''')

Reconectar a una sesión. Utilizando el identificador de la sesión ejecutamos:

$ screen -r 17239.pts-0.eustace

Crear sesión con un nombre más descriptivo

Con la opción -S nombre podemos crear una sesión y asignarle un nombre que nos permita identificar más claramente después las sesiones. Creamos una nueva sesión con nombre ping (luego dejaremos un ping corriendo).

$ screen -S ping

y vemos las sesiones:

$ screen -ls
There are screens on:
        24320.ping      (10/08/2020 03:52:25 PM)        (Detached)
        17239.pts-0.eustace     (10/08/2020 03:27:54 PM)        (Detached)
2 Sockets in /run/screen/S-avaldes

Ahora es más fácil identificar la sesión y volver a conectarse a una de ellas.

Cerrar o terminar la sesión

Estando conectado a una sesión, con la combinación de teclas: Ctrl + d

[screen is terminating]

Ejemplo

Nos reconectaremos a las sesión ping y dejaremos corriendo un ping a una máquina cualquiera, luego saldremos y volveremos a entrar para verificar que el comando aún está corriendo. La secuencia de pasos son:

$ screen -r 24320.ping

$ screen -ls
There are screens on:
        24320.ping      (10/08/2020 03:52:25 PM)        (Attached)
        17239.pts-0.eustace     (10/08/2020 03:27:54 PM)        (Detached)
2 Sockets in /run/screen/S-avaldes

$ ping www.nic.cl
PING www.nic.cl (200.7.7.3) 56(84) bytes of data.
64 bytes from www.nic.cl (200.7.7.3): icmp_seq=1 ttl=58 time=5.48 ms
64 bytes from www.nic.cl (200.7.7.3): icmp_seq=2 ttl=58 time=5.39 ms
64 bytes from www.nic.cl (200.7.7.3): icmp_seq=3 ttl=58 time=5.52 ms

Salimos de la sesión con Ctrl + a + d:

[detached from 24320.ping]

$ screen -ls
There are screens on:
        24320.ping      (10/08/2020 03:52:25 PM)        (Detached)
        17239.pts-0.eustace     (10/08/2020 03:27:54 PM)        (Detached)
2 Sockets in /run/screen/S-avaldes.

Y volvemos a conectarnos y verificar si el comando aún sigue corriendo:

$ screen -r 24320.ping

64 bytes from www.nic.cl (200.7.7.3): icmp_seq=110 ttl=58 time=5.27 ms
64 bytes from www.nic.cl (200.7.7.3): icmp_seq=111 ttl=58 time=5.46 ms
64 bytes from www.nic.cl (200.7.7.3): icmp_seq=112 ttl=58 time=5.53 ms
64 bytes from www.nic.cl (200.7.7.3): icmp_seq=113 ttl=58 time=5.46 ms
64 bytes from www.nic.cl (200.7.7.3): icmp_seq=114 ttl=58 time=5.30 ms
64 bytes from www.nic.cl (200.7.7.3): icmp_seq=115 ttl=58 time=5.36 ms
64 bytes from www.nic.cl (200.7.7.3): icmp_seq=116 ttl=58 time=5.42 ms

TIP Pueden correr los comandos en background (&) si quieren utilizar la misma sesión para ejecutar simultaneamente otros comandos.

TMUX

Documentación

https://github.com/tmux/tmux/wiki
https://www.howtogeek.com/671422/how-to-use-tmux-on-linux-and-why-its-better-than-screen/

virtual_terminal (última edición 2020-10-08 19:16:36 efectuada por AlejandroValdes)