Ejecutar procesos en Background y Foreground

Lo primero, ¿que es Background y Foreground?. Son los planos en los que se puede ejecutar un proceso primer plano en este caso foreground y segundo plano background. Una vez sabido esto, ¿para que vale y que se puede hacer en linux con esto?. Muy fácil, imaginaros que queréis ejecutar un programa desde la terminal. Esto conlleva que esa terminal no se pueda usar mas, porque esta el programa ejecutándose y si hacemos un CTRL + C, el programa se pararía y eso no se quiere.

 

Entonces hay 2 formas de reaprovechar esa terminal. Una sería escribiendo & detrás del comando, así se mandaría el proceso a segundo plano directamente y no molestaría:

 $ gimp &
 [1] 5766

Y la otra sería detener el proceso, que con esto no lo eliminas sino que quedaría en segundo plano detenido hasta que se vuelva a activar. Esto se hace con CTRL + Z:

 $ gimp
 ^Z
 [1]+  Detenido                gimp

De este modo se podría utilizar la terminal y en el momento que se quiera volver a utilizar gimp se podrían listar todos los procesos que están en segundo plano con jobs y luego elegir cual traer a primer plano o poder ejecutarlo en segundo plano.

 $ jobs
 [1]+  Detenido                gimp
 [2]-  Ejecutando              google-chrome-unstable &

¿Cual es la diferencia entre un proceso y otro? Que gimp ha sido detenido con CTRL + Z por lo tanto no se puede ejecutar, y chrome ha sido ejecutado mediante google-chrome-unstable & por lo tanto se está ejecutando en segundo plano.

Si ahora se quiere traer gimp al primer plano (ocupando la terminal) lo que hay que hacer es:

 $ fg 1

Siendo 1 el número de job que tiene gimp.

En cambio, si se quiere continuar ejecutando gimp pero en segundo plano para que no moleste en la terminal hay que ejecutar el siguiente comando:

 $ bg 1

Siendo 1 el número de job que tiene gimp. Y si se ejecuta otra vez el comando jobs, se verá que el estado de gimp ha cambiado.

 $ jobs
 [1]-  Ejecutando              gimp &
 [2]+  Ejecutando              google-chrome-unstable &

Leave a Reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *