(PHP 5, PHP 7, PHP 8)
pcntl_wait — Wartet auf ein abgezweigtes Kind oder gibt dessen Status zurück
Die Funktion wait unterbricht die Ausführung des aktuellen Prozesses, bis ein Kindprozess beendet ist oder bis ein Signal gesendet wird, um den aktuellen Prozess zu beenden oder eine Signalverabeitungsfunktion aufzurufen. Wenn ein 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 wait auf dem jeweiligen System funktioniert, sind in der wait(2)-Manpage des Systems zu finden.
Hinweis:
Ohne
flags
entspricht diese Funktion dem Aufruf der Funktion pcntl_waitpid() mit-1
alsprocess_id
.
status
pcntl_wait() 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
Wenn wait3 auf dem System verfügbar ist (meist BSD-artige Systeme) kann
der optionale Parameter flags
angegeben werden.
Wenn dieser Parameter nicht angegeben wurde, wird wait als Systemaufruf
verwendet. Wenn wait3 nicht verfügbar ist, hat die Angabe eines Wertes
für flags
keinerlei Auswirkungen. Der Wert von
flags
ist der Wert von keiner oder mehr der
folgenden durch OR
verknüpften beiden 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_wait() gibt die Prozess-ID des Kindes zurück, das beendet wurde, -1 im Fehlerfall, oder 0, wenn WNOHANG als Option angegeben wurde (auf Systemen mit wait3) und kein Kind verfügbar war.