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:
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:
Para redirigir la salida al archivo output.txt :
$ nohup bash geekfile.sh > output.txt
Producción:
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:
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:
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:
Publicación traducida automáticamente
Artículo escrito por yashbeersingh42 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA