Gleichzeitige Shell-Befehlsausführung ohne Blockierung
Viele Anwendungen erfordern die Ausführung rechenintensiver Aufgaben im Hintergrund, insbesondere bei der Verarbeitung von Benutzerinteraktionen. In PHP wird zu diesem Zweck häufig die Funktion „shell_exec“ verwendet. Allerdings kann es problematisch sein, wenn die Aufgabe viel Zeit in Anspruch nimmt, da sie den Ausführungsfluss des PHP-Skripts blockiert. Gibt es eine Möglichkeit, einen Shell-Befehl auszuführen, ohne auf dessen Abschluss zu warten?
Gleichzeitige Ausführung mit Umleitung
Ja, es ist möglich, einen Shell-Befehl gleichzeitig ohne Umleitung auszuführen Blockieren des PHP-Skripts. Dies kann erreicht werden, indem die Ausgabe- und Fehlerströme des Befehls auf Null umgeleitet werden. So können Sie es machen:
shell_exec('php measurePerformance.php 47 844 [email protected] > /dev/null 2> /dev/null &');
Das &-Symbol am Ende des Befehls weist die Shell an, den Befehl im Hintergrund auszuführen. Das > /dev/null und 2> /dev/null-Umleitungen verwerfen die Standardausgabe und die Standardfehlerströme, wodurch jegliche Ausgabe des Befehls effektiv stummgeschaltet wird.
Vorteile der gleichzeitigen Ausführung
Die gleichzeitige Ausführung von Befehlen bietet mehrere Vorteile :
Hinweis: Das Umleiten der stdout- und stderr-Streams nach /dev/null bedeutet, dass Sie nicht auf Ausgaben oder Fehler zugreifen können Nachrichten vom Befehl. Wenn Sie diese erfassen müssen, nutzen Sie alternative Methoden wie Rohre oder Prozessüberwachung.
Das obige ist der detaillierte Inhalt vonWie führe ich Shell-Befehle gleichzeitig in PHP aus, ohne sie zu blockieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!