Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich Shell-Befehle asynchron in PHP ausführen?

Wie kann ich Shell-Befehle asynchron in PHP ausführen?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-01 15:27:11437Durchsuche

How Can I Run Shell Commands Asynchronously in PHP?

Shell-Befehle im Hintergrund mit PHP ausführen

Beim Ausführen einer prozessintensiven Aufgabe, wie der Ausführung eines Shell-Skripts, ist es oft wünschenswert, dies zu tun Erledige die Aufgabe im Hintergrund. Dadurch kann der Benutzer die Website oder Anwendung weiter verwenden, ohne auf den Abschluss der Aufgabe warten zu müssen.

Mithilfe von shell_exec()

PHPs Funktion „shell_exec()“ führt a aus Shell-Befehl und gibt seine Ausgabe zurück. Shell_exec() erfordert jedoch, dass das Skript auf den Abschluss des Befehls wartet, bevor es fortfährt.

Befehle im Hintergrund ausführen

Zum Ausführen eines Shell-Befehls im Hintergrund ohne Warten Sie, bis der Vorgang abgeschlossen ist, und verwenden Sie den folgenden Code:

shell_exec('php measurePerformance.php 47 844 [email protected] > /dev/null 2>/dev/null &');

Dieser Code fügt die folgenden Parameter am Ende von „shell_exec()“ hinzu. Befehl:

  • > /dev/null 2>/dev/null: Leitet die Standardausgabe und Fehlerausgabe des Befehls nach /dev/null um und verwirft sie effektiv.
  • &: Führt den Befehl im Hintergrund aus, sodass das Skript ohne fortfahren kann Warten auf den Abschluss des Befehls.

Hinweis: Diese Methode gibt weder die Ausgabe noch den Status des Befehls zurück Code. Wenn Sie Zugriff auf die Ergebnisse des Befehls benötigen, sollten Sie einen anderen Ansatz in Betracht ziehen, z. B. die Verwendung von exec() mit dem Befehl nohup oder die Erstellung eines dedizierten Prozesses für die Hintergrundaufgabe.

Das obige ist der detaillierte Inhalt vonWie kann ich Shell-Befehle asynchron in PHP ausführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn