- SIGCHLD
-
SIGCHLD
SIGCHLD Descripción: El proceso hijo terminado o parado Acción por defecto: Ignorar la señal SA_SEÑALINFO macros CLD_EXITED el proceso hijo ha ejecutado un exit CLD_KILLED el proceso hijo ha terminado anormalmente y no ha creado un archivo de volcado de memoria CLD_DUMPED el proceso hijo ha terminado anormalmente y no ha creado un archivo de volcado de memoria CLD_TRAPPED el rastreo del proceso hijo ha sido interceptado CLD_STOPPED el proceso hijo se ha parado CLD_CONTINUED el proceso hijo que estaba parado ha continuado
En plataformas compatibles con POSIX, SIGCHLD es la señal que envía un programa cuando un proceso hijo 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.[1] El padre debe instalar un manipulador de señales para actuar sobre la señal. En algunas plataformas Unix, se pueden evitar los zombies explícitamente ignorando la señal SIGCHLD.[2] 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 zombies 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
- ↑ Advanced Programming in the UNIX Environment - W. Stevens
- ↑ perlipc - perldoc.perl.org (en inglés)
Categoría: Señales UNIX
Wikimedia foundation. 2010.