Dejar un proceso en ejecución al salir de una sesión en GNU/Linux con nohup

Siguiendo con la tónica de los últimos artículos, va otro para administradores de sistemas, que de hecho la mayoría ya conocerán. Veremos cómo mantener un proceso en ejecución aunque salgamos de la terminal. Además de cómo dejarlo en segundo plano. Para ello vamos a utilizar el comando “nohup

Sobre el comando nohup

Dicho comando nos permite mantener la ejecución de un comando aunque salgamos de la terminal, ya que de esta manera se ejecuta de manera independiente a la sesión. Este comando se encarga de ignorar la señal HUP (encargada de enviar una señal a un proceso cuando la terminal, que lo controla, se cierra) De esta manera, aunque cerremos la terminal, el proceso se sigue ejecutando.

Podemos ver su funcionamiento, mediante las páginas de man.

  1. Modo de empleo: nohup ORDEN [ARGUMENTO]...
  2.        o bien:  nohup OPCIÃN
  3. Ejecuta ORDEN, descartando las señales de colgar.
  4.  
  5.       --help     muestra esta ayuda y finaliza
  6.       --version  informa de la versión y finaliza
  7.  
  8. If standard input is a terminal, redirect it from /dev/null.
  9. If standard output is a terminal, append output to `nohup.out' if possible,
  10. `$HOME/nohup.out' otherwise.
  11. If standard error is a terminal, redirect it to standard output.
  12. To save output to FILE, use `nohup COMMAND > FILE'.

A modo de ejemplo, de la siguiente manera, utilizaremos el comando nohup, combinándolo con el símbolo “&”, de esta manera indicamos que queremos ejecutarlo en segundo plano:

  1. # nohup ./backup.sh &

Al finalizar la ejecución, en el mismo lugar donde hemos ejecutado el comando, nos aparecerá un fichero llamado “nohup.out”, con la información de la salida estándar.

Y esto es todo, espero que os puede servir de ayuda en algún momento.