Интернет магазин китайских планшетных компьютеров



Компьютеры - SIGCHLD

05 июня 2011





В POSIX-системах SIGCHLD — сигнал, посылаемый при изменении статуса дочернего процесса.

SIGCHLD — целочисленная константа, определенная в заголовочном файле signal.h. Символьные имена сигналов используются вместо номеров, так как в разных реализациях номера сигналов могут различаться.

Этимология

SIG — общий префикс сигналов, CHLD — сокращенное написание англ. child — ребенок, дочерний объект.

Использование

В Unix процесс может порождать «дочерние» процессы системным вызовом fork или его вариантами. Родительский процесс, если он существует, уведомляется системой о завершении дочерних процессов сигналом SIGCHLD. Родительский процесс не должен предпринимать для этого никаких действий. Сигнал может быть игнорирован, если не нуждается в обработке.

Процессы-зомби

Дочерний процесс по завершении становится «зомби» — пустой записью в таблице процессов, хранящей информацию о завершенном процессе - до тех пор, пока родительский процесс не получит эту информацию с помощью системного вызова wait или не завершится сам.

В короткоживущих программах наличие «зомби» вполне нормальное явление — зомби не занимают много ресурсов и исчезают с завершением родительского процесса. Но аккуратные программисты всегда заботятся об обработке «зомби». В общем случае для предотвращения накопления «зомби» программа должна использовать обработчик сигнала SIGCHLD c вызовом wait.

В Perl-е установка

$SIG{'CHLD'}="IGNORE"

на самом деле устанавливает обработчик с обработкой процессов-зомби, как описано выше.

Python при

signal.signal

делает то же самое.

Сигналы 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 |

Сигналы реального времени — SIGRTMIN — SIGRTMAX.

Некоторые сигналы не включенные в POSIX и синонимы
SIGIOT | SIGEMT | SIGSTKFLT | SIGIO | SIGCLD | SIGPWR | SIGLOST | SIGWINCH | SIGUNUSED


Просмотров: 1151


<<< SIGBUS
SIGCONT >>>