2011-03-18 8 views
10

De perlipc/Signals:¿Cómo les duele a los zombis?

eval { 
    local $SIG{ALRM} = sub { die "alarm clock restart" }; 
    alarm 10; 
    flock(FH, 2); # blocking write lock 
    alarm 0; 
}; 
if ([email protected] and [email protected] !~ /alarm clock restart/) { die } 

Si la operación que se está tiempo de espera es el sistema() o qx(), esta técnica es susceptible de generar zombis. Si esto es importante para usted, tendrá que hacer su propio fork() y exec(), y eliminar el proceso hijo errante.

Tengo un código similar, donde la operación que se agotó es system() o qx().

¿Lo malo de los zombies es que consumen memoria o hay más formas en que los zombis pueden dañar?

+0

Sí, hay más formas en que los zombis pueden dañar, como comer su cerebro. –

Respuesta

12

El problema principal es que consumen ranuras de tabla de proceso. La tabla de procesos de Linux puede contener 64k entradas, por lo que no es probable que genere problemas a menos que se bifurque mucho sin limpiar a los zombis. Espero que la mayoría, si no todos, otros nixes modernos tienen tablas de proceso del mismo tamaño. Sin embargo, parece feo cuando ejecuta ps.

La memoria no es realmente un problema, ya que cada zombie solo ocupa unos pocos bytes para registrar su estado de salida.

8

Consumen memoria y espacio en la tabla de procesos.

+19

y cerebros. No te olvides de los cerebros –

Cuestiones relacionadas