pcntl_wait

(PHP 5, PHP 7, PHP 8)

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

Опис

pcntl_wait(int &$status, int $flags = 0, array &$resource_usage = []): int

Функція очікування призупиняє виконання поточного процесу до тих пір, поки дочірній процес не завершиться або поки не буде отримано сигнал, який завершує поточний процес або викликає функцію обробки сигналу. Якщо дочірній процес вже завершився на час виклику (так звані "зомбі" процеси), функція негайно поверне керування. Зверніться до вашого системного посібника (man) wait(2) для уточнення специфіки роботи wait у вашій системі.

Зауваження :

Ця функція еквівалентна виклику pcntl_waitpid() з аргументом process_id рівним -1и без аргументаflags

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

status

pcntl_wait() розмістити інформацію про статус за посиланням у аргументі status, який може бути переданий у такі функції: pcntl_wifexited() pcntl_wifstopped() pcntl_wifsignaled() pcntl_wexitstatus() pcntl_wtermsig() і pcntl_wstopsig()

flags

Якщо системний виклик wait3 (man 2 wait3) доступний у вашій системі (як правило, у BSD-подібних системах), ви можете задати необов'язковий аргумент flags. Якщо цей параметр не заданий, буде використано стандартний системний дзвінок wait. Якщо системний дзвінок wait3 недоступний для вашої системи, передача значення аргументу flagsне будет иметь значения. Значение аргументаflags - це бітова маска, яка може набувати значення нуль або більше шляхом логічного об'єднання наступних констант:

Можливі значення для flags
WNOHANGНегайно повернути керування, якщо жоден з дочірніх процесів не завершено
< code class="literal">WUNTRACEDПовернути управління для зупинених дочірніх процесів, про статус яких ще не повідомлено

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

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

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

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