boolean pcntl_signal(integer signal, string handler, boolean restart_syscalls)
Функция pcntl_signal (листинг 9.101) регистрирует дескриптор сигнала для заданного сигнала. Константу сигнала можно выбрать из табл. 9.27. Задать дескриптор можно, указав имя функции или используя двухэлементный массив. Элемент может быть именем класса или объекта. Второй элемент должен представлять собой имя метода. Для того чтобы сигнал был проигнорирован, можно выбрать команду SIG_IGN. При указании константы SIG_DFL для дескриптора PHP восстановит стандартный дескриптор.
По умолчанию PHP использует системный вызов restarting. Для того чтобы изменить это поведение, можно использовать значение FALSE аргумента restart_syscalls.
Операционная система
Листинг 9.101. Функция pcntl_signal

<?php
// определение класса дескриптора class signal
{
function handle($signal)
{
if($signal == SIGHUP) 
{
print(" Получен сигнал HUP!n");
}
}
}
//Задать PHP режим просмотра сигналов
declare(ticks=1);
// зарегистрировать дескриптор
pcntl_signal(SIGHUP, array('signal', 'handle')); // генерировать сигнал posix_kill(posix_getpid(), SIGHUP);
?>

integer pcntl_waitpid(integer pid, integer status, integer options)
Функция pcntl_waitpid останавливает выполнение породившего процесса до тех пор, пока порожденный процесс не завершит свою работу. Она возвращает идентификатор завершенного процесса. В случае возникновения ошибки она возвращает -1. При использовании параметра WNOHANG он может вернуть значение 0, если никакого порожденного процесса не существует.
При вызове функции с аргументом pid меньше, чем -1, PHP будет ожидать порожденный процесс с идентификатором группы, соответствующим абсолютному значению аргумента pid. При вызове этой функции с аргументом pid, равным -1, PHP будет ожидать остановки любого порожденного процесса. При вызове этой функции с аргументом pid, равным 0, PHP будет ожидать любого порожденного процесса, идентификатор группы которого совпадает.
PHP помещает идентификатор статуса в аргументе status. Это значение используется с одной из следующих функций: pcntl_wexitstatus, pcntl_wifexited, pcntl_wifsignaled, pcntl_wifstopped, pcntl_wstopsig, pcntl_wtermsig, что позволит определить причину остановки порожденного процесса. Аргументы options принимают две константы: WNOHANG и WUNTRACED. При задании константы WNOHANG функция pcntl_waitpid возвращает значение немедленно, если нет ни одного завершившегося порожденного процесса. При задании константы WUNTRACED функция pcntl_waitpid возвращает информацию об остановленных порожденных процессах. Эти две константы можно объединить с помощью операции "побитовое ИЛИ".
integer pcntl_wexitstatus(integer status)
Функция pcntl_wexitstatus возвращает выходное значение, возвращенное по­рожденным процессом, если он завершился нормально.
boolean pcntl_wifexited(integer status)
Эта функция проверяет статус, установленный функцией pcntl_waitpid. Она возвращает значение TRUE, если порожденный процесс завершился нормально.
boolean pcntl_wifsignaled(integer status)
Эта функция проверяет статус, установленный функцией pcntl_waitpid. Она возвращает значение TRUE, если порожденный процесс был завершен по сигналу. 
boolean pcntl_wifstopped(integer status)
Эта функция тестирует статус, установленный функцией pcntl_waitpid. Она возвращает значение TRUE, если порожденный процесс был остановлен.
integer pcntl_wstopsig(integer status)
Эта функция проверяет статус, установленный функцией pcntl_waitpid. Она возвращает сигнал, остановивший порожденный процесс, если функция pcntl_wifstopped возвращает значение TRUE.
boolean pcntl_wtermsig(integer status)
Эта функция поверяет статус, установленный функцией pcntl_waitpid. Она воз­вращает сигнал, остановивший порожденный процесс, если функция pcntl_wifsignaled возвращает значение TRUE.