array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ru', ), 'this' => array ( 0 => 'function.pcntl-sigwaitinfo.php', 1 => 'pcntl_sigwaitinfo', ), 'up' => array ( 0 => 'ref.pcntl.php', 1 => 'Функции PCNTL', ), 'prev' => array ( 0 => 'function.pcntl-sigtimedwait.php', 1 => 'pcntl_sigtimedwait', ), 'next' => array ( 0 => 'function.pcntl-strerror.php', 1 => 'pcntl_strerror', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ru', 'path' => 'reference/pcntl/functions/pcntl-sigwaitinfo.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 5 >= 5.3.0, PHP 7, PHP 8)
pcntl_sigwaitinfo — Ожидание сигналов
Функция pcntl_sigwaitinfo() приостанавливает выполнение вызывающего скрипта до тех пор,
пока не будет доставлен один из сигналов, указанных в signals
.
Если один из сигналов уже ожидает обработки (например, заблокирован pcntl_sigprocmask()),pcntl_sigwaitinfo() незамедлительно вернёт управление.
signals
Массив ожидаемых сигналов.
info
Аргумент info
массив, содержащий информацию о сигнале.
Следующие ключи массива (аргумента) применимы для всех сигналов
Следующие элементы массива применимы для сигнала SIGCHLD
:
Следующие элементы массива применимы для сигналов
SIGILL
, SIGFPE
,
SIGSEGV
и SIGBUS
:
Следующие элементы массива применимы для сигнала SIGPOLL
В случае успешного выполнения функция pcntl_sigwaitinfo() возвращает номер сигнала или false
, если возникла ошибка.
Пример #1 Пример использования pcntl_sigwaitinfo()
<?php
echo "Блокировка сигнала SIGHUP\n";
pcntl_sigprocmask(SIG_BLOCK, array(SIGHUP));
echo "Отправка сигнала SIGHUP самому себе\n";
posix_kill(posix_getpid(), SIGHUP);
echo "Ожидание сигналов\n";
$info = array();
pcntl_sigwaitinfo(array(SIGHUP), $info);
?>