scriptit
-
Gesamte Inhalte
2 -
Benutzer seit
-
Letzter Besuch
Inhaltstyp
Profile
Forum
Downloads
Kalender
Blogs
Shop
Beiträge von scriptit
-
-
Moin,
ich habe ein ähnliches Problem... Um einen externen Prozess aus php aufrufen zu können und diese voneinander zu entkoppeln, habe ich mit CreateProzess() ein kurzes Programm gestrickt.
#include <windows.h> #include <iostream> #include <string> using namespace std; int main(int argc, char* argv[]) { STARTUPINFO si; PROCESS_INFORMATION pi; ZeroMemory( &si, sizeof(si) ); si.cb = sizeof(si); ZeroMemory( π, sizeof(pi) ); // Start the child process. if( !CreateProcess( NULL, // No module name (use command line). "externer Prozess", // Command line. NULL, // Process handle not inheritable. NULL, // Thread handle not inheritable. FALSE, // Set handle inheritance to FALSE. 0, // No creation flags. NULL, // Use parent's environment block. NULL, // Use parent's starting directory. &si, // Pointer to STARTUPINFO structure. π ) // Pointer to PROCESS_INFORMATION structure. ) { //ErrorExit( "CreateProcess failed." ); } CloseHandle( pi.hProcess ); CloseHandle( pi.hThread ); return 0; }
Bis dahin funktioniert alles super - aber ich brauche das etwas dynamischer!
Jetzt würde ich das Programm gerne mit einem Übergabeparameter (string) aufrufen, der den Aufruf für den Aufzurufenden Prozess enthält...
Das Array argv[] enthällt zwar alle Übergabeparameter, aber wie kann ich die in den CreateProzess() einbinden/übergeben???
Kann mir dazu jemand einen Tipp geben? Danke
externes Programm starten
in Skript- und Webserverprogrammierung
Geschrieben
Moin, ich habe ein interessantes Problem und vielleicht kann mir hier jemand helfen.
Problemstellung: Ich will mit einem PHP Skript ein externe Programm auf einem Webserver (Windows 2003Server) starten und anschließend soll das Skript weiter ausgeführt werden. Das externe Programm soll aber länger laufen, als das PHP Skript...
Lösung: Ein direkter Aufruf des Programms mit
führt zu einem timeout im Skript -> Das Skript wartet auf die Rückgabe des externen Programms, bevor es weiter läuft. Gleiche Ergebnisse liefern auch
Also habe ich ein kleines Programm geschreiben (VB6), dem ich beim Aufruf das externe Programm als Parameter mitgebe.
Nach dem Start des Programms beendet sich das "Startprogramm" und PHP sollte die erwartet Rückgabe bekommen und das Skript weiter ausführen.
So weit, so gut. Bei mir lokal (WinXPP & XAMPP) läuft das auch prima . Aber auf dem Server leider nicht...
Dort wird das "Startprogramm" ausgeführt, des externe Programm gestartet und das "Startprogramm" beendet sich selbst, aber das Skript läuft nicht weiter! :confused:
Hängt das mit den Prozessen (Father/Child) zusammen, oder warum bekomme ich auf dem Webserver nicht die erwartet Rückgabe? Nach 30sec (Standart) bekomme ich vom Browser einen Timeout, aber mein Skript läuft eben nicht weiter...
Oder hat jemand eine andere Idee, wie ich das externe Programm aufrufen kann?!?!
Danke, schöne Ostern & dicke Eier