SIGCHLD
# SIGCHLD

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. 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. 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); |
