(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)
pcntl_waitpid — Wartet auf ein abgezweigtes Kind oder gibt dessen Status zurück
Unterbricht die Ausführung des aktuellen Prozesses bis der durch den
Parameter process_id
angegebene Kindprozess beendet
ist oder bis ein Signal gesendet wird, um den aktuellen Prozess zu beenden
oder eine Signalverabeitungsfunktion aufzurufen.
Wenn der durch process_id
angegebene Kindprozess zum
Zeitpunkt des Funktionsaufrufs bereits beendet ist (ein sog.
"Zombie"-Prozess), kehrt die Funktion umgehend zurück. Alle durch den
Kindprozess verwendeten Ressourcen werden freigegeben. Spezifische Details,
wie waitpid auf dem jeweiligen System funktioniert, sind in der
waitpid(2)-Manpage des Systems zu finden.
process_id
Der Wert von process_id
kann einer der Folgenden
sein:
< -1 |
wartet auf einen beliebigen Kindprozess dessen Prozessgruppen-ID
gleich dem absoluten Wert von process_id ist.
|
-1 |
wartet auf einen beliebigen Kindprozess; dies ist dasselbe Verhalten, welches die Funktion pcntl_wait() anbietet. |
0 |
wartet auf einen beliebigen Kindprozess, dessen Prozessgruppen-ID gleich dem Wert des aufrufenden Prozesses ist. |
> 0 |
wartet auf das Kind, dessen Prozess-ID gleich dem Wert von
process_id ist.
|
Hinweis:
Wenn
process_id
auf-1
gesetzt wird, entspricht dies der Funktiononalität von pcntl_wait() (ohneflags
).
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().
flags
Der Wert von flags
ist der Wert von keiner oder
mehr der mittels OR
verknüpften folgenden beiden
globalen Konstanten:
WNOHANG |
Gebe umgehend zurück, wenn kein Kind beendet wurde. |
WUNTRACED |
Gebe bei Kindern zurück, die angehalten wurden und deren Status nicht gemeldet wurde. |
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.