pcntl_wait
(PHP 5, PHP 7, PHP 8)
pcntl_wait — Wartet auf ein oder gibt den Status eines abgezweigten Kindes zurück
Beschreibung
&$status
, int $flags
= 0, array &$resource_usage
= []): intDie Funktion wait unterbricht die Ausführung des aktuellen Prozesses bis ein Kind sich beendet hat, oder bis ein Signal ausgeliefert wurde, dessen Aktion den aktuellen Prozess beendet, oder eine Signalverabeitungsfunktion aufruft. Wenn ein Kind 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.
Hinweis:
Diese Funktion ist gleichwertig zum Aufruf der Funktion pcntl_waitpid() mit
-1
alsprocess_id
und keinerleiflags
.
Parameter-Liste
-
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 Ihrem System verfügbar ist (meist BSD-artige Systeme) können Sie den optionalen
flags
Parameter angeben. Wenn dieser Parameter nicht angegeben wurde, wird wait als Systemaufruf verwendet. Wenn wait3 nicht verfügbar ist, wird die Angabe eines Wertes fürflags
keinerlei Auswirkungen haben. Der Wert vonflags
ist der Wert von keiner oder mehr der folgenden durchOR
verknüpften beiden Konstanten:Mögliche Werte für flags
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.
Rückgabewerte
pcntl_wait() gibt die Prozess ID des beendeten Kindes zurück, -1 im Fehlerfall, oder 0, wenn WNOHANG als Option angegeben wurde (auf wait3 Systemen) und kein Kind verfügbar war.
Siehe auch
- pcntl_fork() - Verzweigt den laufenden Prozess
- pcntl_signal() - Richtet eine Signalverarbeitung ein
- pcntl_wifexited() - Prüft ob der Statuscode ein erfolgreiches Beenden darstellt
- pcntl_wifstopped() - Prüft ob der Kindprozess gerade gestoppt ist
- pcntl_wifsignaled() - Prüft ob der Statuscode eine Terminierung wegen eines Signals angibt
- pcntl_wexitstatus() - Lefert den Statuscode eines beendeten Kindes
- pcntl_wtermsig() - Gibt das Signal zurück, welches das Beenden des Kindes verursachte
- pcntl_wstopsig() - Gibt das Signal zurück, welches das Anhalten des Kindes verursachte
- pcntl_waitpid() - Wartet auf ein oder gibt den Status eines abgezweigten Kindes zurück