Hallo,
ich habe folgendes Zielsystem und daran läßt sich (leider) auch nix ändern: Betriebssystem: Windows 2008 und 2012 Server Webserver IIS PHP Version 5.4.x als FastCGI
Die Aufgabe: es soll via PHP Script ein Kommandozeilen Tool angesteuert werden, welches über den Client diverse Parameter übergeben bekommt und dann umfangreiche Daten aus einer DB in verschiedene Formate exportiert. Diese Daten sollen dann gezipt und zum Download bereitgestellt werden. Da der Export zum Teil recht lange dauert soll dies in einem eigenen Prozess im Hintergrund laufen, und eine Benachrichtigung via mail abgesetzt werden, wenn die Daten zum Download bereitstehen.
Mit folgender Funktion bekomme ich solch einen Prozess schon mal ausgeführt und die Daten:
function execInBackground($cmd) {
if (substr(php_uname(), 0, 7) == "Windows"){
pclose(popen("start /B ". $cmd, "r"));
}
else {
exec($cmd . " > /dev/null &");
}
}
$cmd1 = 'meinprogram.exe -f "param1" -c "param2" "zielformat" "zielfile"';
execInBackground($cmd1);
Wie kann ich nun ermitteln, ob der Prozess abgeschlossen ist um die weiteren Schritte auszuführen (Mail absetzten etc.)? Oder bin ich mit so einem Vorgehen vollkommen auf dem Holzweg? Danke + Gruß Hans