Comando nohup en Linux con ejemplos

Cada comando en Linux inicia un proceso en el momento de su ejecución, que finaliza automáticamente al salir de la terminal. Supongamos que está ejecutando programas a través de SSH y si la conexión se cae, la sesión finalizará, todos los procesos ejecutados se detendrán y es posible que se enfrente a una gran crisis accidental. En tales casos, ejecutar comandos en segundo plano puede ser muy útil para el usuario y aquí es donde entra en escena el comando nohup . nohup (No colgar) es un comando en los sistemas Linux que ejecuta el proceso incluso después de cerrar sesión en el shell/terminal. 

Por lo general, a cada proceso en los sistemas Linux se le envía un SIGHUP (Signal Hang UP) que es responsable de finalizar el proceso después de cerrar/salir de la terminal. El comando Nohup evita que el proceso reciba esta señal al cerrar o salir del terminal/shell. Una vez que se inicia o ejecuta un trabajo con el comando nohup, stdin no estará disponible para el usuario y el archivo nohup.out se usa como archivo predeterminado para stdout y stderr . Si la salida del comando nohup se redirige a algún otro archivo, no se genera el archivo  nohup.out .

Sintaxis:

nohup command [command-argument ...]

Trabajando con el comando nohup

1. Comprobación de la versión de Nohup:

La versión del comando nohup se puede verificar usando el siguiente comando.

$ nohup --version

Producción:

nohup version

2. Para ejecutar un comando en primer plano:

Ejecuta el comando en primer plano y redirige la salida del comando al archivo nohup.out si no se menciona ningún nombre de archivo de redireccionamiento.

$ nohup bash geekfile.sh

Producción:

nohub bash

Para redirigir la salida al archivo output.txt :

$ nohup bash geekfile.sh > output.txt

Producción:

nohu bash output.txt

3. Para ejecutar un comando en segundo plano (con ‘&’): 

Para ejecutar el comando en segundo plano, se agrega el símbolo ‘ &’ al final del comando. Después de ejecutarse, no vuelve al símbolo del sistema de shell después de ejecutar el comando en segundo plano. Se puede traer de vuelta al primer plano con el comando fg .

$ nohup bash geekfile.sh &
fg

Producción:

nohup bash script

Nota: El número entre corchetes representa la identificación del trabajo y el número junto a él es la identificación del proceso .

4. Para ejecutar varios comandos en segundo plano:

El comando nohup se puede usar para ejecutar varios comandos en segundo plano.

$ nohup bash -c 'commands'

Ejemplo:

$ nohup bash -c 'cal && ls'

Producción:

To run multiple commands in the background:

Aquí, la salida se almacenará de forma predeterminada en nohup.out . Para redirigirlo, escriba:

$ nohup bash -c 'commands' > filename.txt

Ejemplo:

$ nohup bash -c 'cal && ls' > output.txt

Producción:

Storing the output in output file

Publicación traducida automáticamente

Artículo escrito por yashbeersingh42 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *