Ejecutando procesos en segundo plano con Nohup en Linux


Si eres un usuario habitual de Linux, es probable que en algún momento hayas necesitado ejecutar un proceso que tome mucho tiempo para completarse, pero que necesitas dejar corriendo en segundo plano. Sin embargo, si cierras la sesión en la terminal, el proceso se detendrá. Aquí es donde entra en juego el comando nohup.

Nohup es un comando de Linux que se utiliza para ejecutar procesos en segundo plano que pueden continuar ejecutándose incluso después de cerrar la sesión de la terminal o cerrar la conexión SSH. El nombre nohup proviene de la expresión "no hang up", que indica que el proceso no se verá afectado por la desconexión de la terminal.

La sintaxis básica del comando nohup es la siguiente:

nohup comando [argumentos] &

En esta sintaxis, comando representa el nombre del comando o programa que deseas ejecutar, y [argumentos] son los argumentos que deseas pasar al comando. El ampersand (&) se utiliza para enviar el proceso a segundo plano.

Por ejemplo, si quisieras ejecutar el comando mylongrunningprocess en segundo plano con el argumento myfile.txt, el comando nohup se vería así:

nohup proceso_largo miarchivo.txt &

Al ejecutar este comando, el proceso se iniciará en segundo plano y continuarán su ejecución incluso si cierras la sesión de la terminal. Además, nohup creará un archivo llamado nohup.out en el directorio actual donde se registrarán las salidas del proceso.

También puedes especificar una ruta personalizada para el archivo de salida utilizando la opción -o seguida de la ruta deseada:

nohup proceso_largo miarchivo.txt -o /ruta/a/miarchivo.out &

Otra opción útil es -p, que te permite guardar el PID (identificador de proceso) del proceso en un archivo. Esto es especialmente útil si necesitas detener el proceso más tarde:

nohup proceso_largo miarchivo.txt -p /ruta/a/miarchivo.pid &

Para detener un proceso que se está ejecutando en segundo plano con nohup, primero debes encontrar su PID utilizando el comando ps. Por ejemplo, si el archivo PID se llama miarchivo.pid, puedes usar el siguiente comando para encontrar el PID del proceso:

cat /ruta/a/miarchivo.pid

Una vez que tengas el PID, puedes usar el comando kill para detener el proceso:

kill PID

En resumen, el comando nohup es una herramienta muy útil para ejecutar procesos en segundo plano en Linux y evitar que se detengan cuando se cierra la sesión de la terminal. Si necesitas ejecutar un proceso largo que debe continuar ejecutándose incluso después de cerrar la sesión, nohup es definitivamente el comando que debes utilizar.


Recomendación del comando y redacción del artículo hecho por OpenAi https://chat.openai.com

Comando nohup consultado en https://www.digitalocean.com/community/tutorials/nohup-command-in-linux

Comentarios

Entradas más populares de este blog

Poner ñ y tildes con teclados en inglés

Quitar solicitud de Depósito de claves

Instalado y desinstalando TeamViewer