jueves, 27 de octubre de 2016

2.2 Procesos de LINUX: tipos y estado

¿Qué son los procesos?

Los procesos son programas que se ejecutan en un momento dado. Cuando usamos un sistema operativo de GNU/Linux como Ubuntu por ejemplo (o cualquier otro, también dentro de windows y mac puede aplicarse) existen una serie de procesos que se están ejecutando constantemente y que son los que hacen al sistema operativo utilizable.

Los procesos en GNU/Linux son organizados de forma jerárquica, cada proceso es lanzado por un proceso padre y es denominado proceso hijo. De esta forma, todos los procesos en GNU/Linux son hijos de init ya que este es el primer proceso que se ejecuta al iniciar el ordenador y init es padre de todos los procesos. Si se mata al proceso padre, también desaparecerán los procesos hijos.

Tipos de procesos

Básicamente hay dos: los procesos de usuario y los demonios:

·      Los procesos de usuario son los programas que utiliza el usuario generalmente y se encuentran conectados a una terminal. El programa aparecerá el pantalla y interactuara con el usuario
·      Los demonios por contra, no están conectados a una terminal, funcionan solos y no interactúan con el usuario.

Como ver el listado de procesos en Ubuntu

Gráficamente, se puede realizar fácilmente, haciendo clic en Sistema –> Administración –> Monitor del sistema Si eres usuarios de Kde 4, simplemente ir a Aplicaciones –> Sistema –> Monitor del sistema


Monitor del sistema corriendo en KDE 4.3

También se puede ver un listado de los procesos desde la consola, en la terminal ejecutar el comando “ps” (sin las comillas). En mi caso, solo me aparecen dos procesos en consola, esto no es real, por lo que para ver todos los procesos en consola de todos los usuarios escribid “ps ax” (sin comillas), debería de aparecer una imagen similar a esta:



Como pueden ver, los procesos están ordenados y se presentan con 5 columnas (PID, TTY, STAT, TIME, COMAND), cada columna tiene su significado:

·           PID: Es la primera columna y indica el numero ID del proceso en cuestión. Este numero es necesario para matar luego al proceso, por ejemplo, dentro de los procesos que aparecen en la imagen si quisiera matar al proceso bluetooth, con un PID de 29 escribiría en terminal kill 29
·           TTY: Esta columna muestra en que terminal se está ejecutando el proceso, si aparece con un ? significa que es un demonio (todos los procesos listados en la imagen son demonios, para los más observadores se habrán dado cuenta de que hay más procesos en ejecución, solo que no me entran en una imagen)
·           STAT: Está columna muestra el estado del proceso
·           TIME: Está columna muestra el tiempo que ha consumido el proceso para ser lanzado, es decir, el tiempo que ha pasado desde la ejecución de la orden del proceso hasta que el proceso empezó a funcionar.
·           COMMAND: Está columna muestra el comando que fue necesario para invocar al proceso en cuestión
Listado de procesos en tiempo real

Top

El comando anterior muestra todos los procesos en un momento determinado, pero si quieres verlos en tiempo real puedes escribir el consola “top” (sin comillas) y te saldrá una imagen parecida a esta:


Top es una herramienta muy potente que permite ver el listado de procesos en tiempo real de ejecución, si se desea salir de la aplicación simplemente pulsar q. 
Está herramienta es muy útil y se ha hecho muy popular en GNU/Linux, por lo que hay bastantes herramientas similares con pequeñas modificaciones. Algunos de ellos son por ejemplo Krunner, el monitor de procesos de KDE (cuya imagen está más arriba) o el monitor del sistema de GNOME.

Matar un proceso

Matar a un proceso en bastante sencillo, en consola solo debes escribir lo siguiente:

kill [PID]

Por ejemplo supongamos que tienes un proceso llamado Wow.exe y que quieres matarlo porque se quedo bloqueado o por que funciona de forma errónea,  abres la consola y escribes pd ax, ves que el PID del proceso en cuestión es 25146, pues entonces coges y escribes, kill 25146 y mataras a Wow.exe provocando por tanto el cierre del programa.

Hay ocasiones en las que al mandar ese comando el proceso ignora la seña y continua ejecutandose, si se desea eliminar este proceso por la razón que se, se debe de enviar una señal de eliminación a toda costa (pondre el ejemplo de antes, Wow.exe aunque este nunca ignorara el comando de antes). Para enviarla escribe kill -9 25146, donde -9 es la seña y el otro numero el PID del proceso a eliminar. Hay que tener mucho cuidado al utilizar este ultimo comando, y no usarlo si no se está seguro de lo que se hace.

También se pueden eliminar procesos con la herramienta Top, una vez iniciada en terminal, simplemente pulsa la tecla K y Top preguntara el PID del proceso a eliminar, después pedira la señal que se desea enviar, pueden escribir 15 (señal por defecto, es la señal de terminación por software) o la seña 9 ya explicada.

0 comentarios:

Publicar un comentario