En plataformas compatibles con POSIX, SIGCHLD es la señal enviada a un proceso cuando uno de sus procesos hijos termina. En el código fuente, SIGCHLD es una constante simbólica definida en el archivo de cabecera <signal.h>. Se usan nombres simbólicos de señales porque los números de las señales puede variar de una plataforma a otra.

En Linux, SIGCLD es un sinónimo de SIGCHLD.

Etimología SIG es un prefijo común para nombres de señales. CHLD y CLD son abreviaciones de child, hijo en inglés.

Uso En Unix, un proceso puede tener hijos, creados mediante fork o llamadas de sistema similares. Cuando el hijo termina, se envía una señal SIGCHLD al padre. Por defecto, la señal se ignora y se crea un proceso zombie.Advanced Programming in the UNIX Environment - W. Stevens El padre debe instalar un manejador de señales para actuar sobre la señal. En algunas plataformas Unix, se pueden evitar los zombis explícitamente ignorando la señal SIGCHLD.perlipc - perldoc.perl.org (en inglés) Esto se muestra en varios lenguajes en la siguiente tabla. Sin embargo, instalar un manipulador de señales para SIGCHLD y llamar a wait es la mejor manera de evitar zombis conservando la portabilidad.

Lenguaje Sintaxis C signal(SIGCHLD, SIG_IGN); Perl $SIG{'CHLD'}="IGNORE"; Python signal.signal(signal.SIGCHLD, signal.SIG_IGN) PHP pcntl_signal(SIGCHLD, SIG_IGN);

Referencias

Categoría:Señales Unix