(PHP 8 >= 8.4.0)
pcntl_waitid â Attends qu'un processus enfant change d'Ă©tat
$idtype = P_ALL,$id = null,&$info = [],$flags = WEXITED,&$resource_usage = []RĂ©cupĂšre les informations de statut relatives Ă la terminaison, l'arrĂȘt et/ou la poursuite d'un des processus enfant du processus appelant.
Sauf si le drapeau WNOHANG est passé, le processus appelant
sera bloqué jusqu'à ce qu'une erreur survienne, ou que des informations de
status deviennent disponibles qui satisfont toutes les conditions suivantes :
idtype
et id.
flags.
Si des informations de statut correspondantes sont disponibles avant l'appel à pcntl_waitid(), le retour sera immédiat. Si des informations de statut correspondantes sont disponibles pour deux processus enfants ou plus, l'ordre dans lequel leur statut est rapporté est indéterminé.
Note:
Cette documentation couvre la spécification POSIX de la fonction
waitid, avec quelques paramÚtres supplémentaires spécifiques aux implémentations sur Linux, NetBSD et FreeBSD. Consulter la page manuel du systÚmewaitid(2)pour des détails spécifiques sur le fonctionnement dewaitidsur le systÚme.
idtypeididtype et id sont
utilisés pour spécifier quels enfants attendre.
Si idtype est P_ALL |
attend n'importe quel processus enfant, id est ignoré.
|
Si idtype est P_PID |
attend le processus enfant avec l'identifiant de processus égal à id.
|
Si idtype est P_PGID |
attend n'importe quel processus enfant avec l'identifiant de groupe de processus égal à id.
|
Si idtype est P_PIDFD (depuis Linux 5.4) |
attend le processus enfant référencé par le descripteur de fichier PID spécifié dans
id.
(Voir la page manuel Linux pidfd_open(2) pour plus d'informations
sur les descripteurs de fichier PID.)
|
Si idtype est P_UID
|
attend les processus dont l'identifiant d'utilisateur effectif est Ă©gal Ă
id.
|
Si idtype est P_GID
|
attend les processus dont l'identifiant de groupe effectif est Ă©gal Ă
id.
|
Si idtype est P_SID
|
attend les processus dont l'identifiant de session est Ă©gal Ă
id.
Si le processus enfant a démarré sa propre session, son identifiant de session
sera le mĂȘme que son identifiant de processus. Sinon, l'identifiant de session
d'un processus enfant correspondra Ă l'identifiant de session de l'appelant.
|
Si idtype est P_JAILID
|
attend les processus dans une prison dont l'identifiant de prison est Ă©gal Ă
id.
|
info
Le paramÚtre info est défini comme un tableau
contenant des informations sur le signal.
info peut contenir les clés suivantes :
signo: Nombre du signalerrno: Numéro d'erreur systÚmecode: Code de signalstatus: Valeur de sortie ou signalpid: ID du processus envoyantuid: ID utilisateur réel du processus envoyantutime: Temps utilisateur consomméstime: Temps systÚme consomméflags
La valeur de flags est la valeur de zéro ou plusieurs
des constantes suivantes mise ensemble :
WCONTINUED |
Le statut sera retourné pour tout processus enfant continué dont le statut
n'a pas Ă©tĂ© rapportĂ© depuis qu'il a continuĂ© Ă partir d'un arrĂȘt de contrĂŽle
de travail ou n'a Ă©tĂ© rapportĂ© que par des appels Ă
pcntl_waitid() avec le drapeau
WNOWAIT défini.
|
WEXITED |
Attend les processus qui ont terminé. |
WNOHANG |
Ne pas bloquer si aucun statut n'est disponible ; retourner immédiatement. |
WNOWAIT |
Garde le processus dont le statut est retourné dans
info dans un état attendu. Cela n'affectera pas
l'Ă©tat du processus ; le processus peut ĂȘtre attendu Ă nouveau aprĂšs
que cet appel soit terminé.
|
WSTOPPED |
Le statut sera retournĂ© pour tout processus enfant arrĂȘtĂ© dont le statut
n'a pas Ă©tĂ© rapportĂ© depuis qu'il a Ă©tĂ© arrĂȘtĂ© ou n'a Ă©tĂ©
rapportĂ© que par des appels Ă
pcntl_waitid() avec le drapeau
WNOWAIT défini.
|
resource_usage
Le paramÚtre resource_usage est défini sur un tableau
contenant les statistiques dâutilisation des ressources du processus enfant.
Ceci est pris en charge soit si lâappel systĂšme wait6 est disponible
(par exemple sur FreeBSD), soit sur Linux via lâappel systĂšme brut waitid.
pcntl_waitid() retourne true si le drapeau
WNOHANG a été spécifié et que le statut n'est pas
disponible pour un des processus spécifiés par idtype
et id.
pcntl_waitid() renvoie true en raison du changement
de l'état de l'un de ses enfants.
Sinon false est retourné et pcntl_get_last_error()
peut ĂȘtre utilisĂ© pour obtenir le numĂ©ro d'erreur errno.
Note:
Une fois qu'un numéro d'erreur
errnoa Ă©tĂ© obtenu, pcntl_strerror() peut ĂȘtre utilisĂ© pour obtenir le message texte associĂ©.
ECHILD |
Le processus appelant n'a pas de processus non attendu enfant. |
EINTR |
pcntl_waitid() a été interrompu par un signal. |
EINVAL |
Une valeur invalide a été spécifiée pour flags, ou
idtype et id spécifient un
ensemble invalide de processus.
|
| Version | Description |
|---|---|
| 8.5.0 |
resource_usage a été ajouté.
|