Gestión de trabajos en GNU/Linux

Uno de los temas más complicados de programar y de gestionar por cualquier sistema operativo es sin duda la cola de procesos en ejecución. Cómo repartir tiempo de CPU, cómo gestionar el paso de procesos de activo a espera de CPU o a espera de alguna entrada, etc. Este mismo proceso se puede llevar a cabo dentro del sistema GNU/Linux y es lo que se conoce como gestión de jobs. En el caso del sistema, un trabajo podemos hacer que quede detenido, en segundo plano o en plano de ejecución. Como veremos a continuación, no es lo mismo.


shell> sleep 10
Este comando ejecuta una parada de 10 segundo y al finalizarla termina. Si ahora, durante su ejecución presionamos Control+Z, el proceso quedará detenido.
shell> sleep 10
^Z
[1]+  Detenido                sleep 10
En este caso, que el proceso quede detenido significa que no va a terminar, quedará ahí indefinidamente, ya que no está pidiendo CPU para terminar. Para volver a activarlo, tendremos que volver acceder a él.
Justo el caso contrario es este,
shell> sleep 10 &
[2] 7017
donde gracias al comodín & final dejamos el proceso en segundo plano, pero ejecutándose. Cuando éste termine obtendremos su salida (en caso de que la tenga) y sino información de que ha terminado. Pasados 10 segundos, al presionar cualquier tecla sobre la consola, tendremos esta salida,
[2]-  Hecho                   sleep 10
Sin embargo, el primer proceso que dejamos en segundo plano quedó detenido y no sabemos nada de él. Para tener más información del mismo podemos emplear el comando jobs, que nos listará los procesos en segundo plano y su estado,
shell> jobs
[1]+  Detenido                sleep 10
[2]-  Ejecutando              sleep 10 &
Como vemos, el 2 está en ejecución y el 1 está detenido. El 2 terminará por si mismo, mientras que el primero lo podremos o bien matar,
shell> kill %1
[1]+  Terminado               sleep 10
O bien recuperarlo en la consola activa gracias al comando fg.
shell> fg %1
sleep 10

La entrada Gestión de trabajos en GNU/Linux la puedes leer en Puppet Linux.


No hay comentarios :

Publicar un comentario

Formulario de contacto

Nombre

Correo electrónico *

Mensaje *

Últimos comentarios