(PHP 5, PHP 7)
pcntl_wait — Ожидает или возвращает статус порожденного дочернего процесса
&$status
[, int $options
= 0
[, array &$rusage
]] ) : intФункция ожидания приостанавливает выполнение текущего процесса до тех пор, пока дочерний процесс не завершится или пока не будет получен сигнал который завершает текущий процесс или вызывает функцию обработки сигнала. Если дочерний процесс уже завершился ко времени вызова (так называемые "зомби" процессы), функция незамедлительно вернёт управление. Обратитесь к вашей системному рукодводству (man) wait(2) для уточнения специфики работы wait в вашей системе.
Замечание:
Эта функция эквивалентна вызову pcntl_waitpid() с аргументом
pid
равным -1 и без аргументаoptions
.
status
pcntl_wait() разместит информацию о статусе
по ссылке в аргументе status
, который может
быть передан в слудующие функции:
pcntl_wifexited(),
pcntl_wifstopped(),
pcntl_wifsignaled(),
pcntl_wexitstatus(),
pcntl_wtermsig() и
pcntl_wstopsig().
options
Если системный вызов wait3 (man 2 wait3) доступен в вашей системе (как правило в BSD-подобных системах),
вы можете задать необязательный аргумент options
.
Если этот параметр не задан, будет использован стандатный системный вызов wait.
Если системный вызов wait3 не доступен для вашей системы, передача значения
аргумента options
не будет иметь значения.
Значение аргумента options
- это битовая маска,
которая может принимать значение ноль или более путем логического объединения следующих констант:
WNOHANG | Незамедлительно вернуть управление, если ни один из дочерних процессов не завершен |
WUNTRACED | Вернуть управление для остановленных дочерних процессов, о статусе которых ещё не сообщено |
pcntl_wait() возвращает ID завершенного дочернего процесса,
-1 при ошибке или ноль, если WNOHANG был передан в аргумент
options
(на системах с доступным системным вызовом wait3)
и не было доступных дочерних процессов.