Ejecutar un comando en segundo plano empleando entradas y salidas estándar

Si se desea ejecutar un comando en segundo plano, será necesario añadir el carácter & al final del comando. Por lo tanto si se quiere abrir el programa OpenVPN en segundo plano, se realizará de la siguiente forma:

openvpn /home/mantenimiento/openvpn/client.conf' &

De la misma forma, si se desea redireccionar la salida del flujo de datos de un programa como puede ser OpenVPN, de tal forma que la ejecución del comando no entorpezca la visión de la terminal, será necesario ajustar el comando anterior de la siguiente forma:

openvpn /home/mantenimiento/openvpn/client.conf' & >/dev/null 2>&1

De esta forma tanto el flujo normal de datos así como sus errores se redireccionan a /dev/null. Destacar que /dev/null es un fichero que se encarga de eliminar toda la información que se le añade a el. Algunos lo denominan "agujero negro". 

Las entradas y salidas estándares se suelen denominar de la siguiente forma:
  • STDIN
  • STDOUT
  • STDERR
STDIN: Denominado entrada estándar, se aplica a todo el flujo de datos que entra al programa. Dicho flujo puede provenir de otros programas, teclado, etc. 

STDOUT: Denominado al flujo de datos de salida del programa. Generalmente se muestra por pantalla o se redirecciona a un archivo.

STDERR: Se denomina al flujo de datos de salida en el que se emplean mensajes de error o de diagnóstico. Al igual que STDOUT se puede mostrar por pantalla o redireccionarse a un archivo.

Destacar que los programas no tienen por que tener STDIN, STDOUT o STDERR. De la misma forma se puede denominar con la siguiente numeración:
  • 0 STDIN
  • 1 STDOUT
  • 2 STDERR