Introducción
SIGHUP
(Signal Hang UP) es una señal que finaliza un proceso de Linux cuando se cierra su terminal de control. Si cierra accidentalmente una terminal o pierde la conexión con el servidor, todos los procesos que se ejecutan en ese momento se cancelan automáticamente.
Usando el nohup
El comando es una forma de bloquear el SIGHUP
señal y permitir que los procesos se completen incluso después de cerrar sesión en la terminal/shell.
En este artículo, aprenderá a usar el nohup
comando mientras ejecuta procesos.
Sintaxis de nohup
La sintaxis para usar nohup
el comando es:
nohup [command] [argument]
Opciones de nohup
El nohup
El comando presenta dos opciones de comando básicas, el --help
y la --version
opciones.
Para mostrar el mensaje de ayuda, ejecute el comando:
nohup --help
Para mostrar la información de la versión, escriba:
nohup --version
Ejemplos de nohup
Hay varias formas de usar el nohup
comando, incluida la ejecución del proceso requerido en segundo plano, la ejecución de varios procesos simultáneamente o la redirección de la salida a un archivo diferente.
Los ejemplos a continuación explican casos de uso comunes para nohup
comando.
1. Ejecutando un proceso con nohup
Para ejecutar un comando usando nohup
sin ningún argumento, simplemente siga la sintaxis:
nohup [command]
El shell ignora la salida y la agrega a nohup.out archivo.
Por ejemplo, ejecutar example.sh script bash (que es un simple Hello World script) debería mostrar el mensaje Hello World mensaje en el archivo nohup.out :
nohup bash example.sh
Verifique el contenido del archivo con:
cat nohup.out
2. Ejecutar un proceso en segundo plano con nohup
Ejecutar un proceso de Linux en segundo plano libera la terminal en la que está trabajando. Para ejecutar un proceso de Linux en segundo plano con nohup
comando, agregue el &
símbolo al final del comando:
nohup [command] &
Por ejemplo, para ejecutar example.sh script bash en segundo plano, use el comando:
nohup bash example.sh &
El resultado muestra el ID del trabajo de shell y el ID del proceso:[1] 7366 en el siguiente ejemplo.
Para traer el comando al primer plano, escriba:
fg
El resultado indica si el proceso está en progreso o completo.
3. Ejecutar múltiples procesos en segundo plano con nohup
nohup bach -c '[command1] && [command2]'
Reemplazar [command1]
y [command2]
con los comandos de su elección. Agregue más comandos si es necesario, asegurándose de separarlos con &&
.
Por ejemplo, para mostrar la fecha/hora y el calendario del mes actual, ejecute:
nohup bash -c 'date && cal'
Como la salida se dirige a nohup.out archivo, use el comando cat para enumerar el contenido del archivo y verifique el comando anterior:
cat nohup.out
El resultado muestra la fecha y el calendario solicitados con el comando anterior.
4. Redirigir la salida a un archivo diferente
Como se mencionó en la sección anterior, nohup
registra todos los mensajes de salida y los errores en nohub.out archivo.
Redirija estos mensajes especificando una ubicación personalizada dentro del comando:
nohup [command] > /path/to/output/file.txt
En el siguiente ejemplo, la salida del comando nohup bash -c 'date && cal'
se redirige a output.txt expediente. Verifique la salida con el comando:
cat output.txt