Ejecutar un script en segundo plano con Tmux

Primeros pasos con Tmux, una potente herramienta de creación de sesiones / procesos por Terminal.

Ejecutar un script en segundo plano con Tmux
Regístrate en HDS+
Es gratuito. Ten acceso a todo el contenido.
🔓
Dificultad del tutorial: Fácil

Tmux es una aplicación de terminal que se basa en sesiones. Dentro de cada sesión podemos ejecutar un proceso y que vaya corriendo en segundo plano.

En mi caso, al utilizar unRAID, utilizo para ello el plugin User Scripts, pero es cierto que según que scripts de Python no deja ejecutarlos en background, mostrando errores incomprensibles. Es por ello, y que gracias a la ayuda del usuario Mcklaren de la comunidad Discord de unRAID España y uno de las personas que hay detrás de este proyecto, he aprendido a utilizar Tmux, una potente herramienta que me ha permitido solucionar dicho problema.

Instalación de Tmux

Para instalar Tmux en unRAID tendremos que dirigirnos a Apps y buscar NerdTools. Una vez instalada, nos dirigimos a Ajustes y veremos que nos aparece la herramienta. Hacemos clic en ella y procedemos a instalar el paquete Tmux.

Si Tmux no funciona correctamente

A fecha de hoy, hay un pequeño Bug que puede impedir que Tmux se ejecute correctamente en unRAID. Si es vuestro caso, la solución es muy sencilla.

Para ello, una vez instalado tendremos que ejecutar el siguiente comando:

nano /etc/tmux.conf

Deberemos de cambiar tmux por xterm en la linea indicada en la imagen superior. Guardar el archivo y solucionado.


Utilización de Tmux

Tmux se ejecuta a través de Terminal por línea de comandos. En este sencillo tutorial voy a explicaros cómo abrir una sesión que nos permita ejecutar cualquier script en segundo plano.

Para ello abrimos el Terminal y nos conectamos a nuestro servidor unRAID y ejecutamos el siguiente comando:

tmux new -s [nombre]

Esto nos abrirá una nueva sesión en Tmux, y la forma de saberlo es la barra verde que nos aparecerá en la parte inferior.

Dentro de esta sesión, voy a ejecutar un script de Python, como si lo hiciera bajo el Terminal clásico. El resultado es el que véis en la imagen inferior.

Una vez el script se haya acabado de cargar y se esté ejecutando correctamente, podemos salir de la sesión pulsando <Control + B> y seguidamente la tecla D . Esto nos devolverá al Terminal clásico y en el cual nos mostrará que la sesión ha sido "detached" o lo que es lo mismo y en pocas palabras, ejecutándose en segundo plano.

Podemos abrir tantas sesiones y/o ejecutar tantos procesos en nuestro sistema como queramos.

Si queremos conocer cuantas sesiones tenemos abiertas y se están ejecutando en segundo plano, tendremos que ejecutar el siguiente comando:

tmux ls

Para volver a acceder a una de las sesiones abiertas, podemos utilizar el comando:

tmux attach -t [nombre]

Si ahora quisiéramos detener una de estas sesiones, por ejemplo la que tengo ejecutándose con el nombre de python2 ejecutaremos el siguiente comando:

tmux kill-session -t python2

Tmux es una herramienta potentísima, que nos permite incluso ejecutar múltiples terminales dentro de una misma sesión.

En esta guía he querido mostraros los primeros pasos para entener el funcionamiento de Tmux y como primer ejemplo hacerla servir para ejecutar cualquier script en segundo plano.

Invítame a un café



Más artículos