(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)
pcntl_waitpid — Aguarda ou retorna o status de um filho bifurcado
Suspende a execução do processo atual até que um filho, conforme especificado pelo
argumento process_id
, tenha saído, ou até que um sinal seja
entregue, cuja ação seja encerrar o processo atual ou chamar uma
função de tratamento de sinal.
Se um filho, conforme solicitado por process_id
, já tiver saído
no momento da chamada (um processo chamado "zumbi"), a função
retorna imediatamente. Quaisquer recursos do sistema utilizados pelo filho são liberados.
Consulte a página de manual waitpid(2) do sistema para obter detalhes específicos sobre
como o waitpid funciona.
process_id
O valor de process_id
pode ser um dos seguintes:
< -1 |
aguarda qualquer processo filho cujo ID do grupo de processos seja igual ao
valor absoluto de process_id .
|
-1 |
aguarda qualquer processo filho; este é o mesmo comportamento que a função pcntl_wait() exibe. |
0 |
aguarda qualquer processo filho cujo ID do grupo de processos seja igual ao do processo de chamada. |
> 0 |
aguarda o filho cujo ID do processo é igual ao valor de
process_id .
|
Nota:
Especificar
-1
comoprocess_id
é equivalente à funcionalidade que pcntl_wait() fornece (menosflags
).
status
pcntl_waitpid() armazenará informações de status
no parâmetro status
, que podem ser
avaliadas usando as seguintes funções:
pcntl_wifexited(),
pcntl_wifstopped(),
pcntl_wifsignaled(),
pcntl_wexitstatus(),
pcntl_wtermsig() e
pcntl_wstopsig().
flags
O valor de flags
é o valor de zero
ou mais das duas constantes globais a seguir
combinadas com OR
:
WNOHANG |
Retorna imediatamente se nenhum processo filho tiver saído. |
WUNTRACED |
Retorna para filhos que estão parados e cujos status não tenham sido reportados. |
pcntl_waitpid() retorna o ID do processo
do filho que saiu, -1 em caso de erro ou zero se WNOHANG
foi usado e nenhum
filho estava disponível.