Comando de Linux nohup: mantener los procesos en ejecución después de cerrar sesión

El comando de Linux nohup hace que tu sistema ignore el comando de hangup HUP. De esta manera, un proceso puede seguir ejecutándose en segundo plano. El output obtenido se redirige al archivo nohup.out o a otro archivo de tu elección.

¿Qué es el comando nohup de Linux?

Para entender qué es el comando nohup de Linux, merece la pena echar un vistazo a SIGHUP. Esta es una señal que también se genera en Linux cuando hay un fallo de conexión en una línea de datos entre el sistema operativo y otra aplicación. Pero, en ciertas situaciones, puede que sea necesario que esta señal no se envíe. Una situación en la que sería muy importante es, por ejemplo, cuando una aplicación debe seguir en ejecución, aunque el usuario haya cerrado la sesión en el sistema. Para suprimir la señal y mantener los programas funcionando en segundo plano, se utiliza el comando de Linux nohup.

¿Cómo funciona el comando nohup de Linux?

El programa de Linux nohup está disponible en todas las distribuciones de Linux comunes, como Debian y Ubuntu. Por lo tanto, no es necesario instalar el programa por separado. Puedes utilizarlo para que el sistema inicie un programa específico en segundo plano y, de esta manera, separar el programa elegido del shell de inicio de sesión. Todas las salidas se redirigen automáticamente a la carpeta nohup.out. Especialmente cuando se trata de procesos de larga duración, tienes la ventaja de poder desconectarte sin interrumpir el proceso.

¿Cuál es la estructura de un comando nohup?

La estructura básica del comando de Linux nohup siempre es la misma:

$ nohup [Comando] [Argumento] [&]
bash

“[Comando]” y “[Argumento]” son parámetros que se pueden ajustar y especificar. Si quieres permitir que los procesos sigan ejecutándose en segundo plano después de cerrar la sesión, utiliza “[&]”.

¿Qué opciones se pueden usar con el comando nohup?

Aparte de los dos estándares “-h” o “–help” y “-v” o “—version”, Linux nohup no acepta ninguna opción. Solo cuando se omite introducir un parámetro para “[Comando]”, permite la opción “-p” o “–parents”.

Ejemplos para el comando nohup de Linux

A continuación, te mostraremos algunos ejemplos de uso que te ayudarán a entender mejor cómo funciona este comando.

$ nohup bash ejemplo.sh
bash

Esto hace que el comando se ejecute en primer plano. El output del comando se redirige automáticamente al archivo nohup.out.

$ nohup bash ejemplo.sh > output.txt
bash

Así te aseguras de que el output se redirija al documento output.txt.

$ nohup bash ejemplo.sh &
bash

Esta entrada hace que el comando continúe ejecutándose en segundo plano. Si quieres deshacer esto y volver a poner el comando en primer plano, utiliza el comando fg.