(PHP 5, PHP 7, PHP 8)
pcntl_wait — Espera o devuelve el estado de un proceso hijo
pcntl_wait() suspende la ejecución del proceso actual hasta que uno de los procesos hijos haya terminado, o hasta que se envíe una señal para terminar el proceso actual o para llamar a un gestor. Si el proceso ya ha terminado en el momento de la llamada a la función, es decir, si el proceso es un zombie, entonces la función termina inmediatamente. Todos los recursos del sistema utilizados por el proceso hijo son liberados. Consulte el manual de su sistema en wait(2) para obtener detalles específicos sobre el funcionamiento de wait() en él.
Nota:
Esta función es equivalente a llamar a la función pcntl_waitpid() con un
process_id
valiendo-1
y sinflags
.
status
pcntl_wait() almacenará la información
de estado en el parámetro status
que puede ser leído con las siguientes funciones:
pcntl_wifexited(),
pcntl_wifstopped(),
pcntl_wifsignaled(),
pcntl_wexitstatus(),
pcntl_wtermsig() y
pcntl_wstopsig().
flags
Si wait3 está disponible en su sistema (esto es el caso de la mayoría
de los sistemas BSD-), puede añadir el parámetro opcional
flags
. Si no se proporciona,
wait() será utilizado para la llamada al sistema. Si wait3 no está disponible,
el parámetro flags
no tendrá efecto. El valor
de flags
es la combinación de cero o más
de las siguientes constantes:
WNOHANG |
Termina inmediatamente si ningún proceso ha terminado. |
WUNTRACED |
Termina para los procesos que están detenidos, y para aquellos cuyo resultado no ha sido reportado. |
pcntl_wait() devuelve el identificador de proceso que ha terminado, -1 en caso de error o cero si WNOHANG ha sido proporcionado como opción (disponible en los sistemas wait3), y ningún proceso hijo estaba disponible.