Hay muchos comandos disponibles en los sistemas Linux. Hay algunos que usará varias veces al día y otros generalmente reservados para casos de uso especiales. nohup
es uno de esos comandos. No lo usará todos los días, pero estará agradecido de que esté disponible cuando lo necesite. Aquí te mostramos lo que nohup
es y cómo usarlo.
¿Qué es Nohup?
nohup
es la abreviatura de «No Hangups». No es un comando que ejecute solo. nohup
es un comando complementario que le dice al sistema Linux que no detenga un comando una vez que se ha iniciado. Eso significa que seguirá ejecutándose hasta que termine, incluso si el usuario que lo inició cierra la sesión. Tiene un propósito algo similar a tmux o screen, lo que le permite iniciar un proceso y no preocuparse de si terminará si cierra la sesión o se desconecta de su servidor. La sintaxis para nohup
es simple y se parece a esto:
nohup sh your-script.sh &
Observe el «&» al final del comando. Eso mueve el comando a segundo plano, liberando la terminal en la que está trabajando.
nohup
funciona con casi cualquier comando que ejecute en la terminal. Se puede ejecutar con scripts personalizados, así como con comandos del sistema estándar y utilidades de línea de comandos. Puede usarlo para iniciar un script de auditoría de seguridad en un servidor remoto y poder desconectarse y alejarse, o puede usarlo si desea ejecutar actualizaciones en segundo plano y que no se detengan por nada.
Nohup.fuera
Porque nohup
puede seguir ejecutándose independientemente del usuario que lo inició, el comando necesita algún lugar para generar mensajes o errores. Como no hay un terminal para asociarlo, nohup
registra todo en un archivo de salida, nohup.out
.
De forma predeterminada, ese archivo se encuentra en el directorio en el que inició el comando. nohup.out
es algo único porque contiene tanto la salida estándar como la salida de error juntas. nohup
redirige ambos al mismo archivo de forma predeterminada.
No necesariamente necesita usar nohup.out
, sin embargo, es solo el valor predeterminado. Puede especificar una salida personalizada cuando ejecuta nohup
y colóquelo en una ubicación personalizada.
nohup sh your-script.sh > /path/to/custom.out &
La salida personalizada contiene exactamente los mismos datos que el estándar nohup.out
archivo sería. Esto es bueno para el script de auditoría de seguridad que mencioné anteriormente. Podrías nombrarlo audit-script-output.txt
en algún tipo de carpeta remota montada y ver la postura de seguridad de ese servidor desde la comodidad de su propia computadora portátil en lugar de mirar a través cat
Salidas todo el día.
¿En qué se diferencia Nohup de un demonio?
A estas alturas, probablemente se esté preguntando qué establece nohup
aparte de un proceso demonizado. Después de todo, ambos parecen tener relativamente el mismo propósito, pero en realidad no es así.
Los demonios se ejecutan continuamente en segundo plano. Es mejor reservarlos para los procesos de los que no desea salir nunca, como los servidores. También requieren más trabajo para programar, por lo que no son los mejores para secuencias de comandos simples y únicas.
nohup
es de un solo uso. Piense en un script que tardará mucho tiempo en ejecutarse pero que finalmente terminará. Tal vez hay una tarea larga y complicada que ejecuta de vez en cuando que lleva horas completar. No desea dejar una terminal abierta o un usuario conectado, por lo que usa nohup
para mantenerlo funcionando en segundo plano y poner toda la salida en cualquier archivo que elija, ya sea el predeterminado nohup.out
o su ubicación elegida.
Si te ha gustado este artículo sobre nohup
sus beneficios y sus usos, asegúrese de revisar algunos de nuestros otros contenidos de Linux, como nuestra explicación de los permisos de archivos o cómo acelerar una máquina Linux lenta.