Los procesos en Linux


¿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 está 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 facilmente, haciendo clic en Sistema –> Administración –> Monitor del sistema

Si sois 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á mas 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.

18 de Abril 2010 – Corregido el fallo que no permitía ver las imágenes

Anuncios

4 comentarios en “Los procesos en Linux

  1. Muy buena toda la información, me oriento bastante. Como comentario positivo me gustaría observar que cuando se escribe la conjunción “y” seguida de una palabra que inicia con la letra “i” se escribe la conjunción “e”; por ejemplo: en vez de y init, y interactúa, y indica se escribiria e init…,e interactúa…, e indica… 😉

    Me gusta

  2. Pingback: Los números de 2010 « Viviendo entre Pingüinos

Aquí puedes dejar tus comentarios.

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s