Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich PHP-Befehle asynchron ausführen, ohne das Skript zu blockieren?
PHP-Befehle ausführen, ohne auf Ergebnisse zu warten
Das Ausführen von Befehlen mit exec() in PHP führt normalerweise dazu, dass das Skript auf den Abschluss des Befehls wartet . Es gibt jedoch eine Möglichkeit, Befehle asynchron auszuführen, sodass das Skript fortfahren kann, ohne auf die Ergebnisse warten zu müssen.
In der Dokumentation wird erläutert, dass Sie sowohl die Standardausgabe als auch die Standardfehlerausgabe nach /dev/null umleiten und dann im Hintergrund ausführen können Befehl, um dies zu erreichen:
> /dev/null 2>&1 &
Dadurch wird sichergestellt, dass der Befehl keine Ausgabe erzeugt, die das PHP-Skript blockieren würde.
Alternativ können Sie zum Starten eines Um einen völlig unabhängigen Prozess zu erstellen, können Sie den folgenden Befehl verwenden:
exec('bash -c "exec nohup setsid your_command > /dev/null 2>&1 &"');
Dieser Befehl erstellt eine neue Bash-Shell, die den angegebenen Befehl ausführt. Der Prozess wird vom aktuellen Apache-Thread getrennt und läuft auch dann weiter, wenn die Seite beendet wird.
Das obige ist der detaillierte Inhalt vonWie kann ich PHP-Befehle asynchron ausführen, ohne das Skript zu blockieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!