(PHP 8 >= 8.4.0)
pcntl_waitid — Waits for a child process to change state
$idtype = P_ALL,$id = null,&$info = [],$flags = WEXITED,&$resource_usage = []Obtains status information pertaining to termination, stop, and/or continue events in one of the caller's child processes.
   Unless WNOHANG flag is passed, the calling process will
   become blocked until an error occurs, or status information becomes
   available that satisfies all of the following:
   
idtype and
      id arguments.
     
    flags argument.
     
    If matching status information is available prior to the call to pcntl_waitid(), return shall be immediate. If matching status information is available for two or more child processes, the order in which their status is reported is unspecified.
Nota:
This documentation covers the POSIX specification of the
waitidfunction, along with some additional parameters specific to implementations on Linux, NetBSD and FreeBSD. Please see your system'swaitid(2)man page for specific details as to howwaitidworks on your system.
idtypeididtype and id arguments
      are used to specify which children to wait for.
     
     | If idtypeisP_ALL | wait for any child process, idis ignored. | 
| If idtypeisP_PID | wait for the child with process ID equal to id. | 
| If idtypeisP_PGID | wait for any child with process group ID equal to id. | 
| If idtypeisP_PIDFD(since Linux 5.4) | wait for the child referred to by the PID file descriptor specified in id.
          (See the Linuxpidfd_open(2)man page for further
          information on PID file descriptors.) | 
| If idtypeisP_UID | wait for processes whose effective user ID is equal to id. | 
| If idtypeisP_GID | wait for processes whose effective group ID is equal to id. | 
| If idtypeisP_SID | wait for processes whose session ID is equal to id.
          If the child process started its own session, its session ID will be
          the same as its process ID. Otherwise the session ID of a child
          process will match the caller's session ID. | 
| If idtypeisP_JAILID | wait for processes within a jail whose jail identifier is equal to id. | 
info
      The info parameter is set to an array
      containing information about the signal.
     
      info array may contain the following keys:
      
signo: Signal numbererrno: System error numbercode: Signal codestatus: Exit value or signalpid: Sending process IDuid: Real user ID of sending processutime: User time consumedstime: System time consumedflags
      The value of flags is the value of zero or more of
      the following constants OR'ed together:
      
| WCONTINUED | Status shall be returned for any continued child process whose
           status either has not been reported since it continued from a job
           control stop or has been reported only by calls to
           pcntl_waitid() with the WNOWAITflag set. | 
| WEXITED | Wait for processes that have exited. | 
| WNOHANG | Do not hang if no status is available; return immediately. | 
| WNOWAIT | Keep the process whose status is returned in infoin a waitable state. This shall not
           affect the state of the process; the process may be waited for again
           after this call completes. | 
| WSTOPPED | Status shall be returned for any child that has stopped upon receipt
           of a signal, and whose status either has not been reported since it
           stopped or has been reported only by calls to
           pcntl_waitid() with the WNOWAITflag set. | 
resource_usage
      The resource_usage parameter is set to an array
      containing resource usage statistics from the child process.
      This is supported either if the wait6 system call is available
      (e.g. on FreeBSD), or on Linux through the raw waitid system call.
     
   pcntl_waitid() returns true if
   WNOHANG was specified and status is not available for
   any process specified by idtype and
   id.
  
   pcntl_waitid() returns true due to the change of state
   of one of its children.
  
   Otherwise, false is returned and pcntl_get_last_error()
   can be used to get the errno error number.
  
Nota:
Once an
errnoerror number has been obtained, pcntl_strerror() can be used to get the text message associated with it.
| ECHILD | The calling process has no existing unwaited-for child processes. | 
| EINTR | pcntl_waitid() was interrupted by a signal. | 
| EINVAL | An invalid value was specified for flags, oridtypeandidspecify an
       invalid set of processes. | 
| Versione | Descrizione | 
|---|---|
| 8.5.0 | resource_usagewas added. | 
