SIGCHLD
De Wikipedia, la enciclopedia libre
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.
[editar] Etimología
SIG es un prefijo común para nombres de señales. CHLD y CLD son abreviaciones de child, hijo en inglés.
[editar] 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); |
[editar] Referencias
- ↑ Advanced Programming in the UNIX Environment - W. Stevens
- ↑ perlipc - perldoc.perl.org (en inglés)
Señales POSIX |
SIGABRT | SIGALRM | SIGFPE | SIGHUP | SIGILL | SIGINT | SIGKILL | SIGPIPE | SIGQUIT | SIGSEGV | SIGTERM | SIGUSR1 | SIGUSR2 | SIGCHLD | SIGCONT | SIGSTOP | SIGTSTP | SIGTTIN | SIGTTOU | SIGBUS | SIGPOLL | SIGPROF | SIGSYS | SIGTRAP | SIGURG | SIGVTALRM | SIGXCPU | SIGXFSZ | Señales de tiempo real definidas por el usuario—SIGRTMIN+n hasta SIGRTMAX. |
Señales comunes no POSIX y sinónimos |
SIGIOT | SIGEMT | SIGSTKFLT | SIGIO | SIGCLD | SIGINFO | SIGPWR | SIGLOST | SIGWINCH | SIGUNUSED |