Heim > Backend-Entwicklung > PHP-Tutorial > Wie kann ich Shell-Befehle in PHP asynchron ausführen, ohne sie zu blockieren?

Wie kann ich Shell-Befehle in PHP asynchron ausführen, ohne sie zu blockieren?

Linda Hamilton
Freigeben: 2024-12-06 14:37:12
Original
739 Leute haben es durchsucht

How Can I Asynchronously Execute Shell Commands in PHP Without Blocking?

Asynchrone Ausführung von Shell-Befehlen

Bei der Bearbeitung ressourcenintensiver Aufgaben in Ihren PHP-Skripten ist es oft wünschenswert, diese im Hintergrund auszuführen Vermeiden Sie es, die Ausführung anderen Codes zu blockieren. Eine gängige Methode zum Ausführen von Shell-Befehlen ist „shell_exec“. Normalerweise muss das Skript jedoch auf den Abschluss des Befehls warten.

Um einen Shell-Befehl auszuführen, ohne auf dessen Abschluss zu warten, können Sie eine Hintergrundausführungstechnik nutzen. Dies wird erreicht, indem die Standardausgabe und die Standardfehlerströme des Shell-Befehls auf Nullgeräte umgeleitet werden.

Betrachten Sie den folgenden PHP-Code:

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

In diesem Code wenden wir die folgenden Strategien an :

  • Wir verwenden > /dev/null, um die Standardausgabe des Befehls auf ein Nullgerät umzuleiten und es effektiv zu verwerfen.
  • Wir verwenden 2>/dev/null, um die Standardfehlerausgabe des Befehls auf ein anderes Nullgerät umzuleiten und es erneut zu verwerfen etwaige Fehlermeldungen.
  • Schließlich fügen wir & am Ende des Befehls, um ihn im Hintergrund auszuführen.

Mit dieser Technik können Sie einen Shell-Befehl asynchron erzeugen und so Ihr PHP-Skript für die weitere Ausführung freigeben, ohne auf den Abschluss des Befehls warten zu müssen.

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

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage