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 *