(PHP 8 >= 8.4.0)
pcntl_waitid — Aguarda que um processo filho mude de estado
$idtype = P_ALL,$id = null,&$info = [],$flags = WEXITED,&$resource_usage = []Obtém informações de status referentes a eventos de término, parada e/ou continuação em um dos processos filhos do chamador.
   A menos que o sinalizador WNOHANG seja passado, o processo de chamada ficará
   bloqueado até que ocorra um erro ou informações de status fiquem
   disponíveis, satisfazendo todos os seguintes:
   
idtype e
      id.
     
    flags.
     
    Se informações de status correspondentes estiverem disponíveis antes da chamada a pcntl_waitid(), o retorno será imediato. Se informações de status correspondentes estiverem disponíveis para dois ou mais processos filhos, a ordem em que seus status são relatados não é especificada.
Nota:
Esta documentação abrange a especificação POSIX da função
waitid, juntamente com alguns parâmetros adicionais específicos para implementações em Linux, NetBSD e FreeBSD. Consulte a página de manualwaitid(2)do sistema operacional para obter detalhes específicos sobre comowaitidfunciona.
idtypeididtype e id
      são usados para especificar quais filhos esperar.
     
     | Se idtypeforP_ALL | espera por qualquer processo filho, idé ignorado. | 
| Se idtypeforP_PID | espera pelo processo filho com ID de processo igual a id. | 
| Se idtypeforP_PGID | espera por qualquer processo filho com ID de grupo de processo igual a id. | 
| Se idtypeforP_PIDFD(desde o Linux 5.4) | espera pelo processo filho referido pelo descritor de arquivo PID especificado em id.
          (Consulte a página de manual do Linuxpidfd_open(2)para obter mais
          informações sobre descritores de arquivo PID.) | 
| Se idtypeforP_UID | aguarda processos cujo ID de usuário efetivo seja igual a id. | 
| Se idtypeforP_GID | aguarda processos cujo ID de grupo efetivo seja igual a id. | 
| Se idtypeforP_SID | aguarda processos cujo ID de sessão seja igual a id.
          Se o processo filho iniciou sua própria sessão, seu ID de sessão será
          o mesmo que seu ID de processo. Caso contrário, o ID de sessão de um processo
          filho corresponderá ao ID de sessão do chamador. | 
| Se idtypeforP_JAILID | aguarda processos dentro de uma "jail" cujo identificador de "jail" seja igual a id. | 
info
      O parâmetro info é definido como um array
      contendo informações sobre o sinal.
     
      O array info pode conter as seguintes chaves:
      
signo: Número do sinalerrno: Número do erro do sistemacode: Código do sinalstatus: Valor ou sinal de saídapid: ID do processo que enviauid: ID do usuário real do processo que enviautime: Tempo do usuário consumidostime: Tempo do sistema consumidoflags
      O valor de flags é o valor de zero ou mais das
      seguintes constantes combinadas com OR:
      
| WCONTINUED | O status deve ser retornado para qualquer processo filho continuado cujo
           status não tenha sido relatado desde que continuou a partir de uma parada
           de controle de tarefa ou tenha sido relatado apenas por chamadas a
           pcntl_waitid() com o
           sinalizador WNOWAITdefinido. | 
| WEXITED | Aguarda processos que foram encerrados. | 
| WNOHANG | Não trava se nenhum status estiver disponível; retorna imediatamente. | 
| WNOWAIT | Mantém o processo cujo status é retornado em infoem um estado de espera. Isso não deve
           afetar o estado do processo; o processo pode ser aguardado novamente
           após a conclusão desta chamada. | 
| WSTOPPED | O status deve ser retornado para qualquer processo filho que tenha parado ao receber
           um sinal e cujo status não tenha sido relatado desde
           sua parada ou tenha sido relatado apenas por chamadas a
           pcntl_waitid() com o sinalizador WNOWAITdefinido. | 
resource_usage
      O parâmetro resource_usage é definido como um array
      que contém estatística de uso de recursos do processo filho.
      Isto é suportado se a chamada de sistema wait6 estiver disponível
      (por exemplo no FreeBSD), ou também no Linux através da chamada de sistema waitid.
     
   pcntl_waitid() retorna true se
   WNOHANG foi especificado e o status não está disponível para
   qualquer processo especificado por idtype e
   id.
  
   pcntl_waitid() retorna true devido à mudança de estado
   de um de seus filhos.
  
   Caso contrário, false é retornado e pcntl_get_last_error()
   pode ser usado para obter o número do erro errno.
  
Nota:
Uma vez obtido um número de erro
errno, pcntl_strerror() pode ser usada para obter a mensagem de texto associada a ele.
| ECHILD | O processo de chamada não possui processos filho existentes não aguardados. | 
| EINTR | pcntl_waitid() foi interrompido por um sinal. | 
| EINVAL | Um valor inválido foi especificado para flags, ouidtypeeidespecificam um
       conjunto inválido de processos. | 
| Versão | Descrição | 
|---|---|
| 8.5.0 | resource_usagefoi adicionado. | 
