Entendiendo el comando Nohup

Sunday, July 17, 2011 9:42
Posted in category Linux

Cuando ejecutamos un comando en Unix en background utilizando el ampersand (&) o el comando “bg” y cerramos nuestra sesión, el proceso que inició nuestro comando recibirá una señal “hangup” que hará que el proceso termine.

Si queremos ejecutar un comando o un script de shell que sabemos que va a tardar mucho tiempo en ejecutarse y por supuestro no queremos estar conectados a la consola esperando a que el comando termine su ejecución, tenemos que tirar del comando nohup. Si ejecutamos nuestro comando a través del comando nohup conseguiremos exactamente lo que estabamos comentando, poder salir de la shell y continuar con nuestro trabajo.

La sintaxis del comando nohup es la siguiente:

$> nohup command-with-options &

Como bien dice el manual, nohup es capaz de ejecutar un comando inmune a las señales de hangup puesto que las ignora. De esta manera cualquier comando corriendo en background continuará activo incluso despues de haber cerrado sesión en el terminal.

Otra forma de conseguir lo mismo podría ser ejecutando nuestros scripts mendiante trabajos programados con el comando at, batch o cron. Un ejemplo interesante para utilizar nohup puede ser la creación de un script que queramos que se ejecuta cada ‘x’ segundos (cosa que no se puede hacer con el comando cron) y que por supuesto queremos que se siga ejecutando despues de cerrar la sesión en el terminal.

Por defecto, la salida estandar será redirigida a un fichero nohup.out que se creará en el directorio actual de trabajo. La salida de errores también se redigirá al mismo fichero. Por supuesto podemos redirigir estas salidas utilizando las redireciones normales de la shell.

You can leave a response, or trackback from your own site.

One Response to “Entendiendo el comando Nohup”

  1. Maria says:

    December 22nd, 2013 at 8:13 pm

    Hola,
    por favor me podrias ayudar con este ejercicio?

    Inicia la aplicación Epiphany haciéndola inmune a los cuelgues. Lanza una señal de hang up a este proceso y comprueba que no le afecta.
     La primera parte creo que es $>nohup epiphany pero la segunda parte ya no entiendo nada.
    Gracias!

Leave a Reply