(PHP 8 >= 8.4.0)
pcntl_waitid — Espera a que un proceso hijo cambie de estado
$idtype = P_ALL,$id = null,&$info = [],$flags = WEXITED,&$resource_usage = []Obtiene información de estado relacionada con eventos de terminación, parada y/o continuación en uno de los procesos hijos del llamador.
   A menos que se pase el flag WNOHANG, el proceso que llama
   quedará bloqueado hasta que ocurra un error, o hasta que la información de
   estado sea disponible y cumpla con todas las siguientes condiciones:
   
idtype
      y id.
     
    flags.
     
    Si la información de estado coincidente está disponible antes de la llamada a pcntl_waitid(), el retorno será inmediato. Si la información de estado coincidente está disponible para dos o más procesos hijos, el orden en que se informa su estado no está especificado.
Nota:
Esta documentación cubre la especificación POSIX de la función
waitid, junto con algunos parámetros adicionales específicos de las implementaciones en Linux, NetBSD y FreeBSD. Consulte la página del manualwaitid(2)de su sistema para obtener detalles específicos sobre cómo funcionawaitiden su sistema.
idtypeididtype y id
      se utilizan para especificar qué hijos esperar.
     
     | Si idtypeesP_ALL | esperar cualquier proceso hijo, idse ignora. | 
| Si idtypeesP_PID | esperar al hijo con ID de proceso igual a id. | 
| Si idtypeesP_PGID | esperar cualquier hijo con ID de grupo de procesos igual a id. | 
| Si idtypeesP_PIDFD(desde Linux 5.4) | esperar al hijo referenciado por el descriptor de archivo PID especificado en id.
          (Consulte la página del manual de Linuxpidfd_open(2)para obtener
          más información sobre los descriptores de archivo PID.) | 
| Si idtypeesP_UID | esperar procesos cuyo ID de usuario efectivo es igual a id. | 
| Si idtypeesP_GID | esperar procesos cuyo ID de grupo efectivo es igual a id. | 
| Si idtypeesP_SID | esperar procesos cuya ID de sesión es igual a id.
          Si el proceso hijo inició su propia sesión, su ID de sesión será
          igual a su ID de proceso. De lo contrario, la ID de sesión de un
          proceso hijo coincidirá con la ID de sesión del llamador. | 
| Si idtypeesP_JAILID | esperar procesos dentro de una cárcel cuya identificador de cárcel es igual a id. | 
info
      El parámetro info se establece en un array
      que contiene información sobre la señal.
     
      El array info puede contener las siguientes claves:
      
signo: Número de señalerrno: Número de error del sistemacode: Código de señalstatus: Valor de salida o señalpid: ID del proceso emisoruid: ID de usuario real del proceso emisorutime: Tiempo de usuario consumidostime: Tiempo de sistema consumidoflags
      El valor de flags es el valor de cero o más de
      las siguientes constantes combinadas con OR:
      
| WCONTINUED | Se devolverá el estado de cualquier proceso hijo continuado cuyo
           estado no ha sido reportado desde que continuó de una parada por
           control de trabajos o ha sido reportado solo por llamadas a
           pcntl_waitid() con el flag WNOWAITestablecido. | 
| WEXITED | Esperar procesos que han finalizado. | 
| WNOHANG | No bloquear si no hay estado disponible; devolver inmediatamente. | 
| WNOWAIT | Mantener el proceso cuyo estado se devuelve en infoen un estado esperable. Esto no
           afectará el estado del proceso; el proceso puede ser esperado de nuevo
           después de que esta llamada se complete. | 
| WSTOPPED | Se devolverá el estado de cualquier hijo que se haya detenido al
           recibir una señal, y cuyo estado no ha sido reportado desde que se
           detuvo o ha sido reportado solo por llamadas a
           pcntl_waitid() con el flag WNOWAITestablecido. | 
resource_usage
      El parámetro resource_usage se establece en un array
      que contiene estadísticas de uso de recursos del proceso hijo.
      Esto se admite ya sea si la llamada al sistema wait6 está disponible
      (por ejemplo, en FreeBSD), o en Linux a través de la llamada al sistema
      waitid en bruto.
     
   pcntl_waitid() devuelve true si
   WNOHANG fue especificado y no hay estado disponible para
   ningún proceso especificado por idtype y
   id.
  
   pcntl_waitid() devuelve true debido al cambio de estado
   de uno de sus hijos.
  
   De lo contrario, se devuelve false y pcntl_get_last_error()
   puede usarse para obtener el número de error errno.
  
Nota:
Una vez obtenido un número de error
errno, pcntl_strerror() puede usarse para obtener el mensaje de texto asociado a él.
| ECHILD | El proceso que llama no tiene procesos hijos no esperados existentes. | 
| EINTR | pcntl_waitid() fue interrumpido por una señal. | 
| EINVAL | Se especificó un valor no válido para flags, oidtypeyidespecifican un
       conjunto no válido de procesos. | 
| Versión | Descripción | 
|---|---|
| 8.5.0 | Se ha añadido resource_usage. | 
