Servus,
ich brauche Eure Unterstützung.
Ich führe mit PHP eine selbst-geschriebene Anwendung aus, die auf dem Server liegt. Das klappt auch wunderbar. Die Anwendung selbst braucht ca 30 Sekunden bis sie mit in der Variable $return_int eine Rückmeldung gibt. (1=Erfolgreich, oder diverse Fehlercodes)
Nun, das Problem welches ich nun habe ist, dass die komplette PHP-Website nicht mehr reagiert, weil sie auf die Ausgabe des Programms wartet. Ich starte also mittels der PHP-Funktion "exec" die Funktion und kann mir dann erst mal einen Kaffee holen...
Das ganze per Ajax an den Server zu schicken bringt gar nichts. Die Webseite reagiert erst wieder, wenn der Request durch ist.
In der PHP-Doku steht folgendes:
Meine Frage ist nun, wie das mit den unterschiedlichen Ausgabestreams funktioniert?
Wie bekomme ich PHP dazu, das ganze im Hintergrund laufen zu lassen, damit die Webseite weiterhin verfügbar bleibt?
Hat jemand ein Codebeispiel?
ich brauche Eure Unterstützung.
Ich führe mit PHP eine selbst-geschriebene Anwendung aus, die auf dem Server liegt. Das klappt auch wunderbar. Die Anwendung selbst braucht ca 30 Sekunden bis sie mit in der Variable $return_int eine Rückmeldung gibt. (1=Erfolgreich, oder diverse Fehlercodes)
Nun, das Problem welches ich nun habe ist, dass die komplette PHP-Website nicht mehr reagiert, weil sie auf die Ausgabe des Programms wartet. Ich starte also mittels der PHP-Funktion "exec" die Funktion und kann mir dann erst mal einen Kaffee holen...
PHP-Code:
$return_int = 0;
$return_array = array();
exec("C:\\xampp\\htdocs\\[......]\\test.exe \"var1\" \"var2\" \"var3\"",$return_array,$return_int);
echo $return_int;
In der PHP-Doku steht folgendes:
Beachten Sie auch, dass wenn Sie ein Programm mit dieser Funktion starten und Sie es im Hintergrund laufen lassen möchten, Sie sicherstellen müssen, dass die Ausgabe des Programms in eine Datei oder anderenen Ausgabestream umgeleitet wird. Andernfalls wird PHP solange laufen, bis das Programm beendet ist.
Wie bekomme ich PHP dazu, das ganze im Hintergrund laufen zu lassen, damit die Webseite weiterhin verfügbar bleibt?
Hat jemand ein Codebeispiel?
Kommentar