(PHP 4 >= 4.1.0, PHP 5, PHP 7)
pcntl_waitpid — Wartet auf ein oder gibt den Status eines abgezweigten Kindes zurück
$pid
, int &$status
[, int $options
= 0
[, array &$rusage
]] ) : int
Unterbricht die Ausführung des aktuellen Prozesses bis ein durch den
Parameter pid
angegebenes Kind sich beendet hat oder
bis ein Signal ausgeliefert wurde, dessen Aktion den aktuellen Prozess
beendet oder eine Signalverabeitungsfunktion aufruft.
Wenn ein Kind, welches durch pid
angefordert wird,
sich zum Zeitpunkt des Funktionsaufrufes bereits beendet hat (ein sog.
"Zombie" Prozess) kehrt die Funktion umgehend zurück. Alle durch das Kind
verwendeten Ressourcen werden freigegeben. Die waitpid(2) Handbuch-Seite des
Systems ist bezüglich spezifischer Details, wie waitpid auf dem System
arbeitet, zu konsultieren.
pid
Der Wert von pid
kann einer der Folgenden sein:
< -1 |
wartet auf irgendeinen Kindprozess dessen Prozessgruppen ID gleich dem
absoluten Wert von pid ist.
|
-1 | wartet auf irgendeinen Kindprozess; dies ist dasselbe Verhalten, welches die wait Funktion anbietet. |
0 | wartet auf irgendeinen Kindprozess dessen Prozessgruppen ID gleich dem Wert des aufrufenden Prozesses ist. |
> 0 |
wartet auf das Kind, dessen Prozess ID gleich dem Wert von
pid ist.
|
Hinweis:
Angeben von -1 für den Parameter
pid
ist äquivalent zur Funktionalität der Funktion pcntl_wait() (ohneoptions
).
status
pcntl_waitpid() speichert Statusinformationen im Parameter
status
, welcher durch die folgenden Funktionen
ausgewertet werden kann:
pcntl_wifexited(),
pcntl_wifstopped(),
pcntl_wifsignaled(),
pcntl_wexitstatus(),
pcntl_wtermsig() und
pcntl_wstopsig().
options
Der Wert von options
ist der Wert von keiner oder mehr
der mittels OR verknüpften folgenden beiden globalen
Konstanten:
WNOHANG | Kehre umgehend zurück, wenn kein Kind beendet wurde.. |
WUNTRACED | Kehre für Kinder zurück die gestoppt sind und für solche, deren Status nicht gemeldet ist. |
pcntl_waitpid() gibt entweder die Prozess ID des Kindes
zurück, das beendet wurde, -1 im Fehlerfall, oder 0, wenn WNOHANG
verwendet wurde und kein Kind verfügbar war.