pcntl_waitpid
(PHP 4 >= 4.1.0, PHP 5, PHP 7)
pcntl_waitpid — Ожидает или возвращает статус порожденного дочернего процесса
Описание
$pid
, int &$status
, int $options
= 0
, array &$rusage
= ?
) : int
Функция ожидания приостанавливает выполнение текущего процесса до тех пор,
пока дочерний процесс, указанный в аргументе pid
,
не завершится или пока не будет получен сигнал,
который завершает текущий процесс или вызывает функцию обработки сигнала.
Если дочений процесс, указанный в аргументе pid
,
уже завершился ко времени вызова
(так называемые "зомби" процессы), функция незамедлительно вернёт управление.
Любые системные ресурсы используемые дочерним процессом будут освобождены.
Обратитесь к вашей системному рукодводству waitpid(2) для уточнения
специфики работы waitpid в вашей системе.
Список параметров
-
pid
-
Аргумент
pid
может принимать одно из следующих значений:возможные значения аргумента pid
< -1
ожидать любой дочерний процесс, у которого значение идентификатор группы процессов (group ID) равно модулю значения аргумента | pid
|.-1
ожидать любой дочерний процесс; это такое же поведение, что и у функции wait. 0
ожидать любой дочерний процесс, идентификатор группы процессов (group ID) которого равен идентификатору текущего процесса. > 0
ожидать дочерний процесс ID которого равен pid
.Замечание:
Указание
-1
в качествеpid
- это аналог функции pcntl_wait() (минусoptions
). -
status
-
pcntl_waitpid() разместит информацию о статусе по ссылке в аргументе
status
, который может быть передан в слудующие функции: pcntl_wifexited(), pcntl_wifstopped(), pcntl_wifsignaled(), pcntl_wexitstatus(), pcntl_wtermsig() и pcntl_wstopsig(). -
options
-
Значение аргумента
options
- это битовая маска, которая может принимать значение ноль или более путем логического объединения следующих констант:Возможные значения для options
WNOHANG
Незамедлительно вернуть управление, если ни один из дочерних процессов не завершен WUNTRACED
Вернуть управление для остановленных дочерних процессов, о статусе которых ещё не сообщено
Возвращаемые значения
pcntl_wait() возвращает ID завершенного дочернего процесса,
-1 в случае возникновения ошибке или ноль, если WNOHANG
был передан в аргумент
options
и не было доступных дочерних процессов.
Смотрите также
- pcntl_fork() - Разветвить (fork) текущий запущенный процесс
- pcntl_signal() - Установка обработчика сигнала
- pcntl_wifexited() - Проверяет, соответствует ли код завершения процесса нормальному завершению
- pcntl_wifstopped() - Проверить, остановлен ли дочерний процесс
- pcntl_wifsignaled() - Проверить, соответствует ли код завершения процесса завершению по сигналу
- pcntl_wexitstatus() - Получить код возврата завершенного дочернего процесса
- pcntl_wtermsig() - Получить сигнал, из-за которого был принудительно завершен дочерний процесс
- pcntl_wstopsig() - Получить сигнал, из-за которого был остановлен дочерний процесс