Suscribirse al Feed
11Feb

Procesamiento en segundo plano

TITULO:Procesamiento en segundo plano, suspención y control de procesos

Por lo general cuando ejecutamos un comando esperamos a que termine para seguir con el próximo. Pero, supongamos que el comando que ejecutamos podría tardar bastante tiempo (tal vez es una operación de búsqueda, o está copiando un archivo muy pesado), la solución inmediata sería abrir otra terminal y seguir trabajando ¿no?

Bien, pues existe una forma más "elegante" de hacer las cosas, y es utilizando la naturaleza multitarea de Linux. Es posible ejecutar un comando en segundo plano con el carácter especial "&". Por ejemplo, deseo crear una lista ORDENADA de los archivos con la extensión *.so que hay en mi computador, entonces haría algo como esto:

debianita:/# find . -name '*.so' -print | sort >ListaOrdenada &
[1] 4647
debianita:/#

El shell imprime "[1] 4647" y regresa inmediatamente, es decir, la shell queda lista para recibir comandos de nuevo. La salida indica que se está ejecutando una tarea en segundo plano, y que el PID (identificador de proceso) es 4647. En este caso el proceso es el número 1 en la cola de procesamiento en segundo plano.

Si se ejecuta un proceso sin el comando & el shell espera a que dicha tarea termine antes de pedirte un nuevo comando. En ese caso se dice que la tarea se está ejecutando en primer plano.

Si te vas a casar y en plena boda te das cuenta de que la estás cagando, lo más probable es que ya no puedas hacer nada (condenado estás). Pero Linux es más flexible que el matrimonio, si has ejecutado un comando en segundo plano y te arrepientes puedes traerlo (desde el mundo espectral) "al primer plano" con el comando fg.

Si ya estás casado y quieres tomarte un descanso, conocer más gente (mujeres) y dejar suspendido el matrimonio un rato, pues te jodes porque tu mujer de seguro no te deja. Linux piensa más en ti que tu mujer, si estás ejecutando un comando en primer plano puedes suspenderlo, sin eliminarlo completamente. Para ello debes oprimir "Ctrl+Z", con lo cual el proceso quedará suspendido:

debianita:/# find . -name '*.so' -print | sort > ListaOrdenada

[1]+ Stopped find . -name '*.so' -print | sort >ListaOrdenada
debianita:/#

Puedes "descongelar" el proceso y traerlo al primer plano con el comando fg, o descongelarlo pero dejarlo en segundo plano con el comando bg. Umm, si el matrimonio fuera como Linux... en fin.

Ahora, por último si quieres acabar con el matrimonio recurres al divorcio, pero después viene la separación de bienes, la demanda por alimentos, y tu mujer te deja en la calle. De nuevo, Linux piensa más en ti y aunque lo utilices eres más libre que "unas monjitas fujitivas". Si deseas eliminar un proceso completamente puedes utilizar el comando kill, indicando el PID del proceso (kill 4647), o por su lugar en la cola de procesamiento en segundo plano (kill %1).

Si deseas saber que tareas se están ejecutando en segundo plano puedes utilizar el comando jobs. La siguiente imagen muestra el comportamiento de una sesión de ejemplo, en la que se utilizan los comandos mencionados anteriormente.

Etiquetas:
Enviar a Twitter

3 Comentarios para “Procesamiento en segundo plano”

  1. a gravatar

    Daniel dice:  


    Why linux is so nerd?
    When is it gonna be a human (normal) usable linux?
    (please!, don’t say Ubutu!)

  2. a gravatar

    Cristian dice:  


    Ummm, well, actually I like Linux as it is. I love my fucking freak Linux I don’t care if the normal people cannot use it, that’s their problem not mine.

    Bye, thanks for the comments.

 

 

Antes de comentar... recuerda que no hago tareas

Te invito a subscribirte al feed RSS. ¿No sabes que es un lector de Feeds?

© 2007 - 2008 Dezinerfolio. Todos los derechos reservados.
Powered by Wordpress. Entradas RSS