(PECL ev >= 0.2.0)
EvChild::__construct — Создаёт объект наблюдатель EvChild
$pid
,$trace
,$callback
,$data
= null
,$priority
= 0Создаёт объект наблюдатель EvChild.
Вызывает callback-функцию, когда пришло событие изменения статуса процесса с идентификатором pid
(или любым PID, если pid
задан как 0
). Статус процесса изменяется, когда процесс завершается, либо когда его убивают, либо, если trace
равно true
, когда он остановлен или возобновлён. Другими словами, когда процесс получает сигнал SIGCHLD
, Ev извлекает статус exit/wait для всех изменённых/зомби дочерних процессов и вызывает callback-функцию.
Правильно устанавливать дочернего наблюдателя после того, как EvChild завершился, но до запуска следующей итерации событийного цикла. К примеру, сначала вызывается fork
, после чего новый дочерний процесс может выйти, и только после этого в родителе устанавливается наблюдатель EvChild для нового PID .
Вы можете получить доступ к статусам exit/tracing и pid
используя свойства объекта наблюдателя rstatus и rpid.
Количество PID-наблюдателей для каждого PID не ограничено. Все они будут вызваны.
Метод EvChild::createStopped() не стартует(не активирует) созданного наблюдателя.
pid
Ожидает изменения статуса процесса с идентификатором PID (или любого процесса, если PID задан как 0
).
trace
Если false
, то активация наблюдателя происходит только при завершении процесса. Если true
, то активация происходит также при остановке/возобновлении процесса.
callback
Смотрите Callback-функции наблюдателей.
data
Произвольные данные, связанные с наблюдателем.
priority