El Diario Geek

la utilidad nohup ejecuta una línea de comandos de modo que el comando se sigue ejecutando 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 que se ejecute en segundo plano podría ser asesinado cuando cierre sesión.,

sintaxis para ejecutar el comando nohup

el comando básico sytax para ejecutar un comando nohup es el siguiente:

# nohup command_with_options &

cualquier salida de su trabajo será redirigida 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.

guardar 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.en el directorio de trabajo., Si no tiene permiso de escritura para el directorio de trabajo, nohup envía la salida a ~/nohup.fuera.

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

ejemplos

Ejecutar nohup sin especificar un archivo de salida

vamos a hacer un ejemplo y probar que realmente sigue funcionando después de que haya cerrado la sesión. Iniciaremos un guión llamado script.sh., El contenido del script es el siguiente:

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

Permite ejecutar la secuencia de comandos en backgroupd con nohup comando:

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

Como se puede ver arriba no hemos especificado un archivo de salida. Por lo tanto, la salida estándar y el error estándar por defecto entran en el nohup.archivo en el directorio desde donde se ha invocado el script. También el número 179 especificaba 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.sh179 ? S N 0:01 sh /root/script.sh 506 p2 S 0:00 grep script.sh

el script sigue funcionando. Utilice «ps-ef / grep ps1» si su sistema no es compatible con ps X. También puede comprobar el archivo de salida nohup.para más confirmación.

# cat nohup.outHello World!Hello World!Hello World!Hello World!...

NOTA: Si ejecuta otro comando usando nohup, la salida se anexa al nohup existente.fuera de archivo. Tenga cuidado al ejecutar varios comandos desde el mismo directorio, porque toda la salida se envía al mismo nohup.archivo de salida, que puede ser confuso.,

Ejecutar nohup especificar un archivo de salida

ahora el script anterior también se puede ejecutar el comando nohup y especificar un archivo de salida personalizado como se muestra a continuación:

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

conclusión

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

Author: admin

Deja una respuesta

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