“Nohup” es una de las herramientas más valiosas en la administración de sistemas basados en Linux, ya que ofrece la capacidad de ejecutar comandos de manera persistente.
Como profesionales de TI, a menudo nos encontramos con procesos que requieren tiempo para completarse y que no deben interrumpirse incluso después de cerrar la sesión de la terminal.
Aquí es donde entra en juego “Nohup”, proporcionando una solución efectiva para mantener estos procesos en ejecución.
En el siguiente artículo, vamos a explorar cómo usar este comando, el por qué de su importancia y cómo esta utilidad puede facilitar la gestión de tareas en Linux.
✚ ¿Qué es Nohup?
Nohup, es una abreviatura de la frase en inglés no hang up, un comando utilizado en sistemas Unix y Linux que esconde una gran funcionalidad: la posibilidad de ejecutar comandos en segundo plano.
Pero, ¿qué significa exactamente esto? Significa que, utilizando nohup, podremos iniciar un comando que continuará su ejecución, sin importar si cerramos la terminal desde la cual lo lanzamos o si nuestra sesión se desconecta.
Esta peculiaridad lo convierte en un recurso extremadamente útil, especialmente cuando necesitamos ejecutar procesos que, por su naturaleza, son largos y necesitan un tiempo considerable para finalizar.
Sin nohup, si cerramos la terminal o se interrumpe nuestra conexión, esos procesos se detendrían, provocando posiblemente resultados indeseados o simplemente la pérdida de un tiempo valioso.
Ejemplo básico de uso:
nohup comando &
Aquí, comando representa cualquier programa o script que deseamos ejecutar. El símbolo & al final indica al sistema que el proceso debería ejecutarse en segundo plano, liberando así la terminal para otras tareas.
Es importante destacar que es un comando que viene incorporado en la mayoría de las distribuciones de Linux, por lo que no necesitarás instalar ningún paquete adicional para utilizarlo.
✚ ¿Por qué usar Nohup?
La pregunta lógica que podrías estar haciendo es: “¿Por qué deberíamos usar nohup?” La respuesta es simple: Persistencia.
La mayoría de los comandos que ejecutamos en una terminal de Linux se detienen cuando cerramos la terminal.
Esto puede ser problemático si el comando que estás ejecutando toma mucho tiempo para completarse. Nohup nos ayuda a resolver este problema.
Cuando inicias un comando con nohup, el comando continuará ejecutándose en segundo plano, incluso después de cerrar la terminal.
Esto es extremadamente útil para las tareas que requieren un tiempo prolongado para su ejecución.
✚ Cómo usar Nohup: Un ejemplo más detallado
Para entender mejor cómo funciona nohup y cómo podemos aprovecharlo en nuestra rutina diaria, consideremos un ejemplo más práctico y detallado.
Supongamos que necesitamos buscar en nuestra estructura de archivos todos los archivos de un determinado tipo, algo que puede llevar bastante tiempo si se tiene en cuenta el tamaño y la complejidad de algunos sistemas de archivos.
Utilizaremos el comando find
para esta tarea. Este comando permite buscar archivos en un directorio de acuerdo con varios parámetros.
En nuestro caso, imaginemos que queremos buscar todos los archivos PDF en nuestra carpeta de inicio. El comando para hacer esto sería el siguiente:
find /home/usuario -name "*.pdf"
Donde “usuario” es tu nombre de usuario. Ahora, si quisiéramos que este proceso se ejecute de manera persistente, usaríamos el comando de la siguiente manera:
nohup find /home/usuario -name "*.pdf" &
Al ejecutar este comando, la búsqueda se realizará en segundo plano, y continuará su ejecución incluso si cerramos la terminal o si nuestra conexión se interrumpe.
Este es solo un ejemplo de cómo podemos usar nohup para facilitar nuestras tareas diarias. Con un poco de creatividad, puedes encontrar muchas otras aplicaciones para este poderoso comando.
✚ Manejando la salida de Nohup
Uno de los aspectos importantes a tener en cuenta al usar nohup es cómo se maneja la salida del comando.
Por defecto, el comando redirige la salida estándar y los errores a un archivo llamado nohup.out
en el directorio actual.
Esto significa que, en nuestro ejemplo anterior, todos los nombres de los archivos PDF encontrados se almacenarán en nohup.out
.
Ahora bien, puedes querer que la salida se guarde en un archivo con un nombre diferente o en una ubicación diferente. Para hacer esto, puedes redirigir la salida utilizando el operador >
.
Ejemplo de redirección de salida:
nohup find /home/usuario -name "*.pdf" > resultados_busqueda.out &
En este caso, la salida de la búsqueda de archivos PDF se guardará en el archivo resultados_busqueda.out en lugar de nohup.out.
Esto te proporciona mayor control sobre cómo se manejan y se almacenan los resultados de tus comandos.
En resumen, nohup es una herramienta esencial en el arsenal de cualquier administrador de sistemas Linux.
Con un poco de práctica, puedes comenzar a usar este comando para gestionar eficazmente los procesos de larga duración en tu sistema.