jueves, 9 de abril de 2009

Pasar un proceso a un segundo plano

Una de esas dudas eternas para cualquien novatillo en linux....

En ocasiones, podemos necesitar que un proceso que estamos ejecutando sobre nuestro terminal pase a un segundo plano (Background) de forma que nos permita continuar trabajando.

Imaginemos, por ejemplo, que hemos lanzado una compresión de gran tamaño:
tar -czf /datos/backup-2/archivo.tar.gz *
El sistema se quedará esperando a que el comando tar le devuelva el control del terminal.

Si en ese momento, pulsamos [ctrl+Z] detendremos el proceso en curso:
[1]+ Stopped tar -czf /datos/backup-2/archivo.tar.gz *
Seguidamente, usaremos el siguiente comando para continuar con el proceso en segundo plano:
bg
Con el comando "jobs", obtendremos un listado de los comandos que tenemos en proceso:
[1]+ Running tar -czf /datos/backup-2/archivo.tar.gz * &
Y con el siguiente comando volveremos a poner nuestro proceso en primer plano (foreground):
fg


No obstante, nunca está de más ser previsores y para ello, siempre podremos lanzar nuestro proceso directamente a un segundo plano, añadiendo al final el símbolo "&":
tar -czf /datos/backup-2/archivo.tar.gz * &