Informática

Control de Procesos

Bien, ya hemos visto la estructura de directorios de GNU/Linux, los comandos básicos para recorrerla, toda la gestión de permisos de archivos y como cambiarlos y el propietario de archivos y como cambiarlo, ahora veremos como ejecutar programas desde la consola y como controlarlos.

Para aprender esto, vamos a abrir una consola por supuesto y desde ella vamos a abrir otra consola escribiendo xterm y dando enter.

Vemos que ahora tenemos 2 consolas por que hemos ejecutado el programa xterm que es quien abre una consola, por lo tanto tenemos 2 instancias del programa xterm.
Cada instancia de un programa como en este caso es lo que llamamos proceso.

Si ponemos atención, en la primera consola donde ejecutamos xterm para abrir la segunda, no podemos ejecutar nada porque ésta ha quedado pendiente de la otra consola. Para liberarla debemos presionar ctrl+z

Nos aparece la siguiente linea que nos indica que hemos detenido la consola 2 para liberar la primera. Ahora podemos pasar comandos en la primera consola pero no en la segunda porque ésta está detenida.

[1]+  Stopped                 xterm

Para liberar la segunda consola, la vamos a enviar a procesarse en segundo plano de modo de tener ambas consolas libres, así que escribimos bg (back ground).

Ahora nos aparece la siguiente linea:

[1]+ xterm &

que nos indica que la consola 2 está ejecutandose en back ground es decir segundo plano. Ahora podemos escribir en ambas consolas.

Para volver la consola 2 al primer plano y capturarla en la primera escribimos fg.

Bien, cerramos la consola 2.

Ahora tenemos solo la consola 1 abierta. Lo que vamos a hacer es abrir otra consola y pasarla directamente al segundo plano escribiendo xterm &

Ahora tenemos ambas consolas libres. Vamos a ver que procesos están corriendo en la primera consola (o sea que instancias de programas), escribiendo ps

Nos aparece las siguientes lineas:

  PID TTY          TIME CMD
 8138 pts/0    00:00:00 bash
 8198 pts/0    00:00:00 xterm
 8215 pts/0    00:00:00 ps


Como podemos apreciar, está corriendo bash que es el interprete de los comandos que estamos pasandole a la consola, también está corriendo ps que acabamos de ejecutar y xterm que hace referencia en este caso a la consola 2.
Si ejecutamos ps en la consola 2 veremos que no nos muestra ninguna instancia de xterm ya que allí no hemos abierto otra terminal.
Si vamos a la consola 1 y ejecutamos jobs nos mostrará las tareas que se están realizando desde la consola 1:

[1]+  Running                 xterm &

El número entre corchetes [1] indica el número la tarea, Running quiere decir que está en ejecución y luego viene el nombre del programa instanciado y el símbolo & que indica que se está ejecutando en segundo plano.

Si ejecutamos otra terminal desde la consola 1 con xterm & y volvemos a escribir jobs, veremos lo siguiente:

[1]-  Running                 xterm &
[2]+  Running                 xterm &


Lo que vemos son las consolas 2 y 3 corriendo desde la terminal 1.

Ahora podemos pasar al primer plano (fg) la consola 2 escribiendo fg 1 o la consola 2 escribiendo fg 2.

Bien, suponiendo que tengo las tres consolas abiertas y libres, en la primera consola vuelvo a ejecutar ps y me aparece esto:

 PID TTY          TIME CMD
 8138 pts/0    00:00:00 bash
 8198 pts/0    00:00:00 xterm
 8230 pts/0    00:00:00 xterm
 8249 pts/0    00:00:00 ps


Los números a la izquierda identifican a cada proceso, lo cual nos permite trabajar con ellos a través de éstos, por ejemplo, podemos cerrar la consola 2 matando su proceso escribiendo kill 8198 (es decir el número que a ti te aparezca en esa linea).
Con eso, habremos matado la consola 2, pero no su ventana, si te fijas, la ventana de la consola 2 sigue estando allí pero si intentas escribir no podrás hacerlo, para matar la ventana escribes xkill  y te aparecerá una cruz como puntero del mouse, entonces vas a la ventana y le haces click y la ventana se cerrará.

Bien, resumiendo, desde una consola, si tienes los permisos necesarios puedes ejecutar comandos del bash de gnu/linux, abrir programas o ejecutar archivos.
Puedes ver los procesos de esa consola con ps y matarlos con kill nºdeproceso, puedes matar cualquier ventana con xkill, ver todos los procesos de la pc con ps xa, e incluso puedes entubar la salida de la terminal hacia un archivo para verlo más tarde (ps xa >nombredearchivo.txt).
Puedes ver las tareas con jobs y mandar procesos a segundo plano con bg o con nombredeproceso & y volver a traerlos con fg o fg nºdetarea, etc, para aprender más, puedes consultar el manual de cada comando desde la misma consola escribiendo man nombredecomando.

Comentarios

No hay ningún comentario

Añadir un Comentario: