nohup: Ejecutando comandos persistentes en Linux

Al interactuar con sistemas Linux, a menudo encontramos la necesidad de ejecutar tareas que puedan tardar mucho tiempo o que queremos que continúen incluso después de cerrar nuestra sesión. Aquí es donde nohup entra en escena. Esta herramienta nos permite lanzar comandos que no se interrumpirán, incluso si cerramos la terminal o la sesión SSH. En este artículo, te llevaremos a través del mundo de nohup en sistemas Ubuntu y Debian, explicando su importancia y cómo usarlo correctamente.

Entendiendo el propósito de nohup

Para aquellos que están comenzando en el mundo de Linux, primero es crucial comprender qué problema resuelve nohup y por qué es necesario.

La señal HUP (Hang UP)

En Linux, cuando cierras una terminal o una sesión SSH, todos los procesos que iniciaste desde esa terminal recibirán una señal llamada HUP (Hang UP). Esta señal, en la mayoría de los casos, terminará esos procesos. nohup evita que este comportamiento suceda.

¿Por qué usar nohup?

Imagina que estás transfiriendo un archivo grande o ejecutando un proceso que toma muchas horas. Si comienzas este proceso desde una sesión SSH y luego cierras la sesión, el proceso se detendrá. Con nohup, puedes asegurarte de que el proceso siga funcionando en segundo plano.

Utilizando nohup en la vida diaria

Ahora que entiendes la teoría detrás de nohup, hablemos sobre cómo usarlo en situaciones prácticas.

Sintaxis básica

La forma de usar nohup es bastante sencilla:

nohup [COMANDO] &

El símbolo & al final es esencial, ya que mueve el proceso a segundo plano, permitiéndote continuar utilizando la terminal.

Visualizar la salida

Cuando usas nohup, la salida estándar (cualquier cosa que el comando imprima en pantalla) se redirige a un archivo llamado nohup.out en el directorio actual. Puedes ver el contenido de este archivo en cualquier momento para verificar el progreso del comando.

Consejos y trucos para un uso efectivo de nohup

Si bien nohup es fácil de usar, hay algunos consejos y trucos que pueden ayudarte a aprovecharlo al máximo.

Redirigir la salida

Si no deseas que la salida se guarde en nohup.out, puedes redirigirla a otro archivo:

nohup [COMANDO] > mi_archivo.log 2>&1 &

Combinar con disown

En algunos casos, puedes olvidarte de usar nohup al inicio. Si ya has iniciado un proceso y deseas asegurarte de que continúe después de cerrar la terminal, puedes mover el proceso a segundo plano con bg y luego usar disown.

Verificar procesos en segundo plano

El comando jobs te mostrará los procesos que tienes en segundo plano. Es útil para verificar que todo esté funcionando como se espera.