GNU/Linux >> Tutoriales Linux >  >> Linux

Ejemplos de comandos de Nohup:ejecuta un comando que continúa ejecutándose después de cerrar la sesión

La utilidad nohup ejecuta una línea de comando de modo que el comando sigue ejecutándose después de cerrar la sesión. En otras palabras, nohup hace que un proceso ignore una señal SIGHUP. Dependiendo de cómo esté configurado el shell local, un proceso iniciado sin nohup y ejecutándose en segundo plano podría cancelarse cuando cierre la sesión.

Sintaxis para ejecutar el comando nohup

La sintaxis básica del comando para ejecutar un comando nohup es la siguiente:

# nohup command_with_options &

Cualquier resultado de su trabajo será redirigido a un archivo llamado "nohup.out", a menos que especifique lo contrario con

# nohup command > myout.file 2>&1

que envía toda la salida al archivo myout.file.

Guardando la salida del comando nohup

Si no redirige la salida de un comando que ejecuta usando nohup, tanto la salida estándar como el error estándar se envían al archivo llamado nohup.out. en el directorio de trabajo. Si no tiene permiso de escritura para el directorio de trabajo, nohup envía la salida a ~/nohup.out .

También puede enviar la salida a cualquier otro archivo especificado por usted como se muestra arriba en la sintaxis del comando.

Ejemplos

1. Ejecutar nohup sin especificar un archivo de salida

Hagamos un ejemplo y probemos que realmente continúa funcionando después de que haya cerrado la sesión. Iniciaremos un script llamado script.sh. El contenido del guión es el siguiente:

# cat script.sh
#!/bin/sh
while(true)
do
	echo "Hello World!"
	sleep 10
done

Ejecutemos el script en backgroupd con el comando nohup:

# nohup script.sh & 
[1] 179 
$ nohup: appending output to `nohup.out`

Como puede ver arriba, no hemos especificado un archivo de salida. Por lo tanto, la salida estándar y el error estándar van por defecto al archivo nohup.out en el directorio desde donde se invocó el script. También el número 179 Especificó el ID de proceso (PID) del trabajo. Este PID se puede verificar en la salida del comando "ps -ef" como se muestra a continuación.

Ahora salga del shell, vuelva a iniciar sesión y ejecute el siguiente comando:

$ ps x | grep script.sh
179  ?   S N  0:01 sh /root/script.sh 
506  p2 S     0:00 grep script.sh

El guión sigue funcionando. Utilice “ps-ef | grep ps1” si su sistema no es compatible con ps x. También puede consultar el archivo de salida nohup.out para obtener más confirmación.

# cat nohup.out
Hello World!
Hello World!
Hello World!
Hello World!
...
NOTA :si ejecuta otro comando usando nohup, la salida se agrega al archivo nohup.out existente. Tenga cuidado al ejecutar varios comandos desde el mismo directorio, ya que todos los resultados se envían al mismo archivo nohup.out, lo que puede resultar confuso.

Ejecutar nohup especificando un archivo de salida

Ahora la secuencia de comandos anterior también se puede ejecutar con el comando nohup y especificar un archivo de salida personalizado como se muestra a continuación:

# nohup script.sh > /tmp/script.out 2>&1
[1] 14235

Conclusión

Si está ejecutando un proceso y no cree que se completará cuando cierre la sesión del día, use el comando nohup. Nohup continuará procesando cuando salga de su cuenta. Nohup significa sin colgar .


Linux
  1. 4 formas de mantener un comando en ejecución después de cerrar la sesión de SSH

  2. 20 ejemplos de comandos OpenSSL que debes conocer

  3. 4 formas de averiguar un núcleo de CPU que ejecuta un proceso particular en Linux

  4. ¿Cómo registrar cada comando escrito?

  5. ¿Cómo hacer que un programa continúe ejecutándose después de cerrar la sesión de ssh?

8 Comando Tee de Linux con ejemplos

Comando Nohup Linux con ejemplos

El comando Nohup en Linux le permite ejecutar comandos incluso después de cerrar sesión

Ejemplos de comandos echo de Linux

3 Salida del comando SELinux sestatus explicada con ejemplos

¿Puedes superar esto? 15 ejemplos prácticos de comandos superiores de Linux