Ожидает или возвращает статус порождённого дочернего процесса

# pcntl_waitpid

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

pcntl_waitpid — Ожидает или возвращает статус порождённого дочернего процесса

### Описание

function pcntl_waitpid(
int `$process_id`,
int `&$status`,
int `$flags` = 0,
array `&$resource_usage` = []
): int

Функция ожидания приостанавливает выполнение текущего процесса до тех пор, пока дочерний процесс, указанный в аргументе `process_id`, не завершится или пока не будет получен сигнал, который завершает текущий процесс или вызывает функцию обработки сигнала.

Если дочерний процесс, указанный в аргументе `process_id`, уже завершился ко времени вызова (так называемые "зомби" процессы), функция незамедлительно вернёт управление. Любые системные ресурсы используемые дочерним процессом будут освобождены. Обратитесь к вашей системному руководству waitpid(2) для уточнения специфики работы waitpid в вашей системе.

### Список параметров

`process_id`

  Аргумент `process_id` может принимать одно из следующих значений:

  возможные значения аргумента `process_id`
  `< -1` | ожидать любой дочерний процесс, у которого значение идентификатор группы процессов (group ID) равно модулю значения аргумента |`process_id`|.
  `-1` | ожидать любой дочерний процесс; это такое же поведение, что и у функции pcntl_wait().
  `0` | ожидать любой дочерний процесс, идентификатор группы процессов (group ID) которого равен идентификатору текущего процесса.
  `> 0` | ожидать дочерний процесс ID которого равен `process_id`.

  > Замечание:

  > Указание `-1` в качестве `process_id` - это аналог функции pcntl_wait() (минус `flags`).

`status`

  pcntl_waitpid() разместит информацию о статусе по ссылке в аргументе `status`, который может быть передан в следующие функции: pcntl_wifexited(), pcntl_wifstopped(), pcntl_wifsignaled(), pcntl_wexitstatus(), pcntl_wtermsig() и pcntl_wstopsig().

`flags`

  Значение аргумента `flags` - это битовая маска, которая может принимать значение ноль или более путём логического объединения следующих констант:

  Возможные значения для `flags`
  `WNOHANG` | Незамедлительно вернуть управление, если ни один из дочерних процессов не завершён
  `WUNTRACED` | Вернуть управление для остановленных дочерних процессов, о статусе которых ещё не сообщено

### Возвращаемые значения

Функция pcntl_wait() возвращает ID завершённого дочернего процесса, -1, если возникла ошибка, или ноль, если `WNOHANG` был передан в аргумент `flags` и не было доступных дочерних процессов.

### Смотрите также

- pcntl_fork() - Разветвить (fork) текущий запущенный процесс
- pcntl_signal() - Устанавливает обработчик сигнала
- pcntl_wifexited() - Проверяет, соответствует ли код завершения процесса нормальному завершению
- pcntl_wifstopped() - Проверяет, остановлен ли дочерний процесс
- pcntl_wifsignaled() - Проверить, соответствует ли код завершения процесса завершению по сигналу
- pcntl_wexitstatus() - Получить код возврата завершённого дочернего процесса
- pcntl_wtermsig() - Получить сигнал, из-за которого был принудительно завершён дочерний процесс
- pcntl_wstopsig() - Получить сигнал, из-за которого был остановлен дочерний процесс

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open