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
може приймати одне з наступних значень:
< -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
- це бітова маска, яка може набувати значення нуль або більше шляхом логічного об'єднання наступних констант:
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() - Отримати сигнал, через який було зупинено дочірній процес