Hace mucho tiempo, cuando sólo había una terminal.
¿Se han preguntado qué hacer cuando solo disponen de una sola terminal y tienen que ejecutar varias cosas? Pues bien, en la antigüedad las cosas funcionaban así, no disponían de los lujos de varias terminales, ni mucho menos un entorno gráfico.
Peor aún, cuando estaban editando un archivo, y tenían que cerrarlo para ejecutar una segunda tarea. Dos conceptos fundamentales aquí es el primer y segundo plano.
Segundo plano. Es la ejecución de comandos o programas en un plano que no tenemos, como usuarios, interacción con él, por tanto, los programas que necesiten entrada desde el teclado, quedan descartados para correr en segundo plano. Solo pueden ser puestos en modo Detenido.
Primer plano. Es la ejecución común de comandos y programas, en la cual podemos visualizar todos los mensajes que despliega en la línea de comandos.
Un comando/programa puede ser llevado y traído a ambos planos indistintamente, dependiendo de las necesidades particulares del usuario.
Las tareas llevadas a segundo plano pueden tener dos estados, Detenido y Ejecutando
Llevar un comando a segundo plano
Si estamos ejecutando un comando que tarda demasiado, y nuestra carga de actividades nos lleva a necesitar ese tiempo para avanzar en la misma, podemos mandarlo a segundo plano. Para ello, desde su ejecución, agregamos el signo de ampersand (&) al final de la línea que contiene las instrucciones que la terminal ejecutará.
$ comando &
También es posible hacerlo de otra forma, cuando el comando está en curso. Para ello, pulsamos la combinación de teclas CTRL-Z.
Visualizar los comandos que se ejecuten en segundo plano
Si tenemos varios comandos corriendo de esta manera, será necesario ir trayendo a primer plano los comandos conforme a la necesidad. Antes de elegir alguno, tenemos que saber el identificador que posee. Esta tarea le pertenece al jobs.
$ jobs
Los jobs son numerados del 1 a n. Tienen algunos identificadores, como el símbolo (+). Quiere decir que fue la última tarea que fue enviada a segundo plano. Si el signo es (-) es la penúltima tarea en ser enviada a segundo plano.
Traer un comando a primer plano.
Una vez identificada la tarea que queremos traer a primer plano, podemos ejecutar:
$ fg [número]
[número] es el identificador que jobs nos arroja.
Inmediatamente nos traerá la ejecución a primer plano.
Otros
Existen otras combinaciones, pero dependen de la naturaleza de las tareas que se ejecutan. Por ejemplo, podemos tener un comando Detenido en segundo plano, por la razón que sea, como conservación de recursos, sin embargo, podemos pasarlo a Ejecución sin la necesidad de traerlo a primer plano.
$ bg [número]
Conclusión
Esta característica que nos ofrecen los sistemas operativos basados en Unix, es funcional cuando nos vemos limitados en número de terminales. Hoy día va en desuso esta característica, sin embargo, es bueno conservar cierta noción de las capacidades heredadas del sistema que estamos adminnistrando.
Comentarios
Publicar un comentario