pcntl_waitpid

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

pcntl_waitpid — Очікує чи повертає статус породженого дочірнього процесу

Опис

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очікувати будь-який дочірній процес; це така ж поведінка, що й у функції wait. ідентифікатор групи процесів (group ID) якого дорівнює ідентифікатору поточного процесу. процес 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Негайно повернути керування, якщо жоден з дочірніх процесів не завершено
< code class="literal">WUNTRACEDПовернути управління для зупинених дочірніх процесів, про статус яких ще не повідомлено

Значення, що повертаються

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

Дивіться також

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