Saltar al contenido

¿Cuál es la diferencia entre nohup y ampersand?

Este escrito ha sido probado por expertos para asegurar la exactitud de nuestro tutorial.

Solución:

nohup capta la señal de colgar (ver man 7 signal) mientras que el ampersand no lo hace (excepto que el shell está configurado de esa manera o no envía SIGHUP en absoluto).

Normalmente, cuando se ejecuta un comando usando & y al salir del shell después, el shell finalizará el subcomando con la señal de colgar (kill -SIGHUP ). Esto se puede prevenir usando nohupya que capta la señal y la ignora para que nunca llegue a la aplicación real.

En caso de que esté usando bash, puede usar el comando shopt | grep hupon para averiguar si su shell envía SIGHUP a sus procesos secundarios o no. Si está desactivado, los procesos no finalizarán, como parece ser su caso. Puede encontrar más información sobre cómo bash finaliza las aplicaciones aquí.

Hay casos en los que nohup no funciona, por ejemplo cuando el proceso que inicia vuelve a conectar el SIGHUP señal, como es el caso aquí.

myprocess.out & ejecutaría el proceso en segundo plano usando una subcapa. Si el shell actual finaliza (por ejemplo, al cerrar la sesión), todos los subshells también finalizan, por lo que el proceso en segundo plano también finalizaría. El comando nohup ignora el HUP señal y, por lo tanto, incluso si el shell actual está terminado, el subshell y myprocess.out continuaría ejecutándose en segundo plano. Otra diferencia es que & solo no redirige el stdout/stderr, por lo que si hay algún resultado o error, se muestran en la terminal. nohup, por otro lado, redirige el stdout/stderr a nohup.out o $HOME/nohup.out.

La mayoría de las veces iniciamos sesión en el servidor remoto usando ssh. Si inicia un script de shell y cierra la sesión, el proceso se cancela. Nohup ayuda a continuar ejecutando el script en segundo plano incluso después de cerrar la sesión del shell.

Nohup command name &
eg: nohup sh script.sh &

Nohup capta las señales HUP. Nohup no pone el trabajo automáticamente en segundo plano. Necesitamos decir eso explícitamente usando &

Sección de Reseñas y Valoraciones

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

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