proceso zombi

Terminar o matar un proceso zombi en Linux

Los procesos en un sistema operativo son fundamentales para dotar de «vida» al hardware, o al sistema en general. En informática, un proceso es cualquier programa en ejecución, es decir, un conjunto de instrucciones en funcionamiento asociados a un estado y a una porción de recursos (memoria, CPU). Sin embargo, en Linux es muy rara la vez que un proceso finalizado continúe con su ciclo de «vida». A esta «rareza de la naturaleza» es lo que llaman un proceso zombi o zombie.

Un proceso defunct (difunto), o proceso zombi, en realidad es un proceso hijo cuyo proceso padre no lo finalizó. Básicamente el proceso hijo ha finalizado su ejecución, pero mantiene una entrada en la tabla de procesos. Simbólicamente hablando, el proceso hijo muere pero su «alma» sigue deámbulando en el sistema.

Verificación de un proceso zombi


Empleando el comando ps podemos verificar si nuestro sistema alberga algún proceso zombi. Pero antes, recordemos la identificación del estado de cada proceso que nos muestra ps -Al, en la columna Estado (S).

 

  • S– procesos suspendido (el proceso está esperando su turno para ejecutarse)
  • R– proceso en corriendo
  • D– proceso esperando a que finalice alguna operación de Entrada/Salida
  • Z– proceso zombi

 

Tengamos en cuenta la columna PPID (id del proceso padre) y PID (id del proceso – proceso hijo), porque cuando un proceso pierde a su proceso padre, el proceso mayor init se convierte en su nuevo padre (PPID 1). Cuando el proceso es adoptado por init se le llama proceso huérfano. Sin embargo, cuando esto no sucede da nacimiento a un proceso zombi.

Realmente un proceso zombi no consume memoria ni procesador, pues se trata de una entrada «olvidada» en la tabla de procesos. En nuestro computador personal no tenemos mucho rollo para lidiar con este tema. Con reiniciar la máquina es suficiente. Sin embargo, en un entorno productivo quizá nos moleste ver esa entidad deámbulando por ahí, pues es evidencia de que un servicio o proceso no está funcionando del todo bien. En este caso debemos aplicar otras medidas más profesionales que veremos en seguida.

 

En busca de procesos zombis en Linux


El comando top nos puede hacer un recuento de posibles procesos zombis.

proceso zombi

Conteo de procesos zombies con el comando top

El siguiente comando nos da información más detallada del proceso zombi.

ó también

Eliminación de un proceso zombi en Linux


Si detectamos algún un proceso zombi en nuestro sistema, tenemos tres opciones para «matarlo» (kill). Son las siguientes:

proceso zombi

 

Primera opción:

Segunda opción:

Tercera opcion

Cuarta opción

Quinta opción

Si las cinco opciones anteriores no surten efecto, no se extrañe, ahí es donde el proceso zombi honra su nombre. Pero la última es la vencida:

 

Sexta opción:

Descarga el siguiente archivo (link en la imagen), quítele la extensión «.txt», asígnele permisos de ejecución y corralo como usuario root con la opción –admin.

 

Por ejemplo, un día me sucedió con Apache Web Server. Sucedía que la página de la intranet corporativa no cargaba. Procedí a verificar el estado de los procesos y de inmediato el sistema me informa sobre 11 procesos zombis (defunct) de Apache. Acto seguido procedí a ejecutar el programa zombi.sh y solucionado:

 

proceso zombi

Eliminación de procesos zombies

Causas

Las causas más general de un proceso zombi es la mala programación del software de donde procede.

Puedes leer más sobre procesos zombis, aquí


Valora este artículo:

Terminar con un proceso zombi en Linux
5,0 rating based on 12.345 ratings
Overall rating: 5 out of 5 based on 1 reviews.

 

Name
Email
Review Title
Rating
Review Content

 

Sorprendente

★★★★★
Muy bueno el artículo.
- Antonio Aguilar

 

Comparte esto en
Publicado en GNU Linux.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *