Espera la finalización de la ejecución de un proceso hijo

# pcntl_waitpid

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

pcntl_waitpid — Espera la finalización de la ejecución de un proceso hijo

### Descripción

function pcntl_waitpid(
int `$process_id`,
int `&$status`,
int `$flags` = 0,
array `&$resource_usage` = []
): int

Suspende la ejecución del proceso actual hasta que un proceso hijo especificado por el parámetro `process_id` haya terminado, una señal haya terminado este proceso o una señal haya llamado a un gestor de señales.

Si el proceso hijo identificado por `process_id` ya ha terminado en el momento de la llamada a esta función (se les llama procesos "zombie"), la función termina inmediatamente. Cualquier recurso del sistema utilizado por el proceso hijo es liberado. Consulte la página de man waitpid(2) para obtener detalles sobre el comportamiento de esta función en su sistema.

### Parámetros

`process_id`

  El valor de `process_id` puede ser uno de los siguientes:

  Valores posibles para `process_id`
  `< -1` | espera un proceso hijo cuyo identificador de grupo es igual al valor absoluto de `process_id`.
  `-1` | espera cualquier proceso hijo; esto corresponde al mismo comportamiento que el de la función pcntl_wait() presente.
  `0` | espera un proceso hijo cuyo identificador de grupo es igual al del proceso actual.
  `> 0` | espera el proceso hijo cuyo identificador es igual al valor de `process_id`.

  > Nota:

  > Especificando `-1` como `process_id`, esto equivale a la funcionalidad que proporciona pcntl_wait() (menos `flags`).

`status`

  pcntl_waitpid() registrará información sobre el estado actual del proceso en el parámetro `status`, al cual se puede acceder gracias a las siguientes funciones: pcntl_wifexited(), pcntl_wifstopped(), pcntl_wifsignaled(), pcntl_wexitstatus(), pcntl_wtermsig() y pcntl_wstopsig().

`flags`

  El parámetro `flags` puede tomar el valor cero, o varias de las siguientes constantes globales (combinadas con el operador `OR`):

  Valores posibles de `flags`
  `WNOHANG` | retorna inmediatamente si ningún proceso hijo ha terminado.
  `WUNTRACED` | retorna cuando los procesos hijos están detenidos y su estado no ha sido actualizado.

### Valores devueltos

pcntl_waitpid() retorna el identificador de proceso del proceso hijo que ha terminado, o bien -1 en caso de error o cero si `WNOHANG` ha sido utilizado y ningún proceso hijo estaba disponible.

### Ver también

- pcntl_fork() - Duplica el proceso actual
- pcntl_signal() - Instala un gestor de señales
- pcntl_wifexited() - Verifica si el código de retorno representa una finalización normal
- pcntl_wifstopped() - Devuelve true si el proceso hijo está detenido
- pcntl_wifsignaled() - Verifica si el código de estado representa una terminación debido a una señal
- pcntl_wexitstatus() - Devuelve el código de un proceso hijo terminado
- pcntl_wtermsig() - Devuelve la señal que causó el término del proceso hijo
- pcntl_wstopsig() - Devuelve la señal que causó la detención del proceso hijo

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open