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.