11/15/2007


Control de procesos, en primer y segundo plano!

Bueno quizas estamos en la consola y necesitamos abrir otra aplicacion pero no queremos quitar la que tenemos en pantalla, por ejemplo estamos editando un archivo de texto en vim y queremos correr mp3blaster(reproductor de musica), primero tenemos que suspender la tarea, es decir que en este estado no consume recursos del cpu y espera a ser continuada. Presionamos ctrl+z y les aparecera un mensaje similar a
este..

debian:/# vi /etc/inetd.conf

[1]+ Stopped vi /etc/inetd.conf
debian:/#


Luego ejecutamos mp3blaster y elegimos el tema....



Presionamos ctrl+z nuevamente y la suspendemos...nos aparecera siguiente mensaje..

debian:/# mp3blaster

[2]+ Stopped mp3blaster


Nos quiere decir que tenemos 2 tareas suspendidas, podemos verlas con el comando ps -ax y grep busca las lineas que tengan la letra T en la columna STAT, esta indica que el proceso esta suspendido,podemos ver los valores mas significativos de esta columna:

Letra .........Significado


R .............. Corriendo
T .............. Suspendido
P .............. Esperando para Paginar
D .............. En espera Ocupada no interrumpible
S ............... Durmiendo menos de 20 seg
I ............... Durmiendo más de 20 seg
Z ............... Zombie


debian:/# ps ax | grep T
PID TTY STAT TIME COMMAND
8877 pts/2 Tl 0:00 vi /etc/inetd.conf
8904 pts/2 Tl 0:00 mp3blaster
8921 pts/2 R+ 0:00 grep T
debian:/#


Para controlar las tareas en segundo plano tenemos el comando jobs:

debian:/# jobs -l
[1]- 8877 Parado vi /etc/inetd.conf
[2]+ 8904 Parado mp3blaster
debian:/#


Si queremos pasar alguna tarea a primer plano tenemos el comando fg, aclaremos que el mismo controla la ultima tarea, si queremos pasar a primer plano el programa vim le damos como parametro el numero [1] indicado en la primera columna del comando jobs.

debian:/# fg 1



Para pasar una tarea a segundo plano tenemos el comando bg(background):

debian:/# bg 1
[1]+ vi /etc/inetd.conf &
debian:/# jobs -l
[1]+ 8877 Parado (requiere salida por terminal) vi /etc/inetd.conf
[2]- 9754 Parado mp3blaster
debian:/#


Este comando es lo mismo si hicieramos:

debian:/# vim /etc/inetd.conf &

ya que continua la tarea en segundo plano.

Hay que aclarar que en estado suspendido no se puede matar a la tarea, muere despues de pasarla a primer o a segundo plano.
Ej:

debian:/# jobs -l
[1]+ 8877 Parado (requiere salida por terminal) vi /etc/inetd.conf
[2]- 9754 Parado mp3blaster
debian:/# kill 8877
debian:/# ps ax | grep T
PID TTY STAT TIME COMMAND
8877 pts/2 Tl 0:00 vi /etc/inetd.conf
9754 pts/2 Tl 0:00 mp3blaster
10266 pts/2 R+ 0:00 grep T
debian:/#


Aca vemos que vim se sigue ejecutando despues de haberla matado, pero si la pasamos a segundo o a primer plano muere...

debian:/# fg 1
vi /etc/inetd.conf
Vim: capté una señal de muerte TERM
Vim: finalizado.
Terminado
debian:/#


De esta manera podemos ver que el archivo continua en memoria despues de haberlo eliminado y por ende puede ser recuperado....les mostrare luego como se hace =). Espero que les halla servido y/o gustado. Saludos!

0 comentarios: