Ejecutar comandos en background (segundo plano) linux
- netoec84
- Linux
- Oct 20, 2012
- background, nohup, screen
La manera más sencilla de enviar un comando para que sea ejecutado en segundo plano es agregando «&» al final del mismo, sin embargo tiene la desventaja que si cerramos nuestra terminal o consola y el comando no ha sido terminado de ejecutarse este sera interrumpido.
Como solución y para desligarlo del terminal en el cual estamos iniciando el comando en background podemos utilizar:
nohup comando &
Esto ejecuta comando de tal forma que puedes salir de sesión sin que se corte el programa. La salida a pantalla del programa se guardará en el archivo nohup.out del directorio donde se ejecute. Se puede revisar el estado del programa usando el comando ps
ps -fea | grep comando
También se puede usar el comando screen.
screen
Si no disponemos del comando podemos instalarlo de la siguiente manera:
yum install -y screen
Los atajos del teclado mas utilizados para moverse a través de los screens son:
- Ctrl+a y luego 0 – 9 – para cambiar entre ventanas o screens
- Ctrl+n – para cambiar a la siguiente ventana disponible
- Backspace – regresa a la ventana previa
- Ctrl+a – cambia a la ultima ventana previa
- Ctrl+a D – para desligarse del screen sin cerrarlo
- A – cambia el nombre de la sesion en la ventana
- K – elimina la session en la ventana
- c – Crea una nueva ventana
- [ – permite usar en scroll hacia arriba y abajo en la ventana
Screen permite dejar ejecutándose un comando y desde una sesión remota ssh, retomar lo que se dejo en la pantalla de screen en la maquina remota. Nos conectamos remotamente via ssh revisamos la sesiones de screen abiertas con:
screen -ls
solo basta con ejecutar :
screen -x
y retomaremos las cosas tal y como las dejamos.