Al salir del shell de un sistema Linux, todos los procesos en ejecución generalmente finalizan o cuelgan. Entonces, ¿qué haces si aún quieres que los procesos sigan ejecutándose incluso al salir del shell/terminal? Aquí es donde el comando nohup entra.
Comando Nohup
Nohup, abreviatura de no colgar, es un comando en los sistemas Linux que mantiene los procesos en ejecución incluso después de salir del shell o terminal.
Nohup evita que los procesos o trabajos reciban la señal SIGHUP (Signal Hang UP). Esta es una señal que se envía a un proceso al cerrar o salir de la terminal. En esta guía, echamos un vistazo al comando nohup y demostramos cómo se puede utilizar.
Sintaxis del comando Nohup
La sintaxis del comando Nohup es la siguiente;
nohup command arguments O
nohup options Veamos cómo entra en juego el comando
Comprobando la versión de Nohup
Puede comenzar comprobando la versión de Nohup usando la siguiente sintaxis
nohup --version Salida

Iniciar un proceso usando Nohup
Si desea mantener sus procesos/trabajos en ejecución, anteponga el comando con nohup Como se muestra abajo. Los trabajos seguirán ejecutándose en el shell y no se eliminarán al salir del shell o terminal.
nohup ./hello.sh Salida

Del resultado anterior, el resultado del comando se guardó en nohup.out para verificar esta ejecución,
cat nohup.out Salida

Además, puede optar por redirigir la salida a un archivo diferente como se muestra
nohup ./hello.sh > output.txt Una vez más, para ver el archivo, ejecute
cat output.txt Salida

Para redirigir a un archivo y a un error y salida estándar, utilice > filename 2>&1 atributo como se muestra
nohup ./hello.sh > myoutput.txt >2&1 Salida

Iniciar un proceso en segundo plano usando Nohup
Para iniciar un proceso en segundo plano, utilice & símbolo al final del comando. En este ejemplo, hacemos ping a google.com y lo enviamos a segundo plano.
nohup ping google.com & Salida

Para verificar el proceso al reanudar el shell, use pgrep comando como se muestra
pgrep -a ping Salida

Si desea detener o eliminar el proceso en ejecución, use kill comando seguido del ID del proceso como se muestra
kill 2565 Salida

Resumen
- Todos los procesos que se ejecutan con el comando nohup ignorarán la señal SIGHUP incluso al salir del shell.
- Una vez que se inicia o ejecuta un trabajo con el comando nohup, stdin no estará disponible para el usuario.
- De forma predeterminada,
nohup.outse utiliza como archivo predeterminado para stdout y stderr.