jueves, 26 de mayo de 2011

Procesos Zombies

Los principales estados de los procesos en Linux son :
Sleeping (S) : Procesos que están esperando su turno para ejecutarse.
Running (R) : Procesos que están en ejecución.
Waiting (D) : Procesos esperando a que se finalice alguna operación de Entrada/Salida.
Zombie (Z) : Procesos que han terminado pero que siguen apareciendo en la tabla de procesos. Se pueden deber a errores de programación y pueden ser el síntoma de un sistema lento o que provoca problemas.

Un proceso Zombie es aquel que nunca recibió una señal por parte del proceso padre que lo creo, un proceso hijo es aquel que tiene su origen en un proceso de nivel superior conocido como proceso padre que es el encargado de enviar las señales a los procesos hijos generados por el mismo para indicarles que su lapso de vida ha terminado.

Se pueden deber a errores de programación y pueden ser el síntoma de un sistema lento o que provoca problemas. Esta situación suele ocurrir,también debido a que alguna configuración no fue contemplada por el desarrollador.

En la Wikipedia se puede leer más acerca de estos procesos.

Ejecutando el comando top podemos ver en tiempo real los procesos que se están ejecutando en el sistema, y nos indicara si hay alguno en estado zombie, pero no nos indica cual es.



Para verlos todos los procesos teclear en la terminal:  ps aux  , y  para ver sólo los zombies:  ps -el |grep 'Z'   o  ps -A -ostat,ppid,pid,cmd | grep -e '^[Zz]'

Con el comando ps aux | awk '{ print $8 " " $2 }' | grep -w Z  te aparece un listado de los procesos zombies que tengas, con un número PID que los identifica:

usuario@mint ~ $ ps aux | awk '{ print $8 " " $2 }' | grep -w Z
Z 1945
usuario@mint ~ $

Si al listar los procesos aparece alguno con estado Z, significa que es un zombie, lo cual a su vez quiere decir que la aplicación no está bien solventada o tiene bugs.
( Si tienes pocos procesos zombies puedes deshacerte de ellos, sabiendo su PID y ejecutando en la terminal un comando similar a, en este ejemplo: kill -9 1945 )

Cuando tienes muchos procesos zombie o al menos mas de uno, puedes usar el siguiente comando que arrasa con ellos, solo sirve para eso, si lo ejecutas sin tener procesos zombies no sucederá nada:

sudo kill -HUP `ps -A -ostat,ppid,pid,cmd | grep -e '^[Zz]' | awk '{print $2}'`

------------------------------

Como poner un zombie en tu vida:

Hay varias formas:
- usar el sistema operativo Windows: según leo aquí http://www.muylinux.com/2010/10/17/ordenadores-zombis-y-titulares-incompletos/ España es el tercer país del mundo con más ordenadores zombis, gracias al uso experto que los usuarios españoles hacen de ese sistema. Si quieres ser uno de los agraciados usuarios de un pc zombie ya sabes, usa windows sin protección de un antivirus ni firewall, ni antispyware, ni malware, ni...

-los procesos zombies son casi inexistentes en Gnu/Linux, pero al instalar una versión alfa ( o beta, etc ) de una nueva versión de una distro de linux , (o de un programa, por ejemplo una versión alfa o beta de Firefox)  puedes obtener varios zombies que no paran de aumentar Ram o que ralentizan algo el escritorio. Es decir no aconsejo instalar versiones de prueba ( alfa, beta, etc ) ni de distros, ni de programas en una distro estable.

- montar en nuestro sistema pendrives, discos duros, cd, dvd, etc con archivos, programas, etc, de dudosa procedencia, o peor aún de procedencia cierta de windows.

Si ya tienes un zombie en tu vida, puedes asociarte a http://www.fvza.org/

--------------------------------------------------------------------

2 comentarios:

  1. Gracias por tus tutoriales,con los que aprendo mucho,pero en verdad están aun nivel muy superior al que estoy yo,pero gracias de todas formas por el blog y por la pasión que nos une por linux.

    ResponderEliminar

A la vez que haces un comentario, por favor da una puntuación al tema: malo, normal, bueno o muy bueno.
Gracias.