pcntl_waitpid
(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)
pcntl_waitpid — Wartet auf ein abgezweigtes Kind oder gibt dessen Status zurück
Beschreibung
pcntl_waitpid(
int $process_id
,
int &$status
,
int $flags
= 0,
array &$resource_usage
= []):
int
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.
Parameter-Liste
process_id
-
Der Wert von process_id
kann einer der Folgenden
sein:
Mögliche Werte für process_id
< -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() (ohne flags
).
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:
Mögliche Werte für flags
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.
|
Rückgabewerte
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.