Programm mit exec() starten
Paul
- php
Hallo,
versuche nun seit einigen Stunden ein selbstgeschriebenes .c Programm ->.exe mit php zu öffnen (soll auf dem Server starten).
Was an sich auch klappt. Das Problem ist nur das php wartet bis das Programm fertig ist.
Aber genau das soll es nicht. Es soll einfach im Hintergrund weiterlaufen.
Das ganze wäre auch nicht so problematisch, wenn ich mit Linux arbeiten würde, aber ich bin auf Windows angewießen.
die php man enpfiehlt eine Umleitung der Ausgabe in eine Datei, aber alle meine Versuche in diese Richtung sind fehlgeschlagen. Ich versuchte es auch über den Umweg .bat und start bzw. runas aber komme da zum gleichen ergebnis. (bei start hängenbleiben, bei runas scheint garnichts zu passieren), obwohl wenn ich die .bat direkt starte sich die bat öffnet das programm im extra fenster startet und dann sich selbst beendet. Hab auch ewig in forem rumgesucht, aber die meisten verweisen auf die linux lösung oder sind nicht beantwortet.
Kann mir da irgendwer helfen?, bitte!!!
Würde mich auf jede Anregung freuen,
Paul
Hi Paul!
die php man enpfiehlt eine Umleitung der Ausgabe in eine Datei, aber alle meine Versuche in diese Richtung sind fehlgeschlagen.
Wie sehen denn deine Versuche in diese Richtung aus?
mfG
Benjamin
Hallo Benjamin,
Danke für deine schnelle Antwort.
Bin da glaub ich ziemlich stümperhaft vorgegangen, hab zu dem Thema Umleitung in Datei bei php nicht viel gefunden, also hab ich versucht
erst eine datei zu öffnen und den exec befehl im datei schreiben befehl zu platzieren und dann die datei zu schließen, dabei kommt das selbe raus wie sonst auch, programm startet, aber php bleibt hängen. Kann man eigentlich die stdout bei php direkt umleiten? Muss ja nicht mal ne datei sein, kann auch ins leere gehen, die ausgaben des programms nicht für mich nicht so wichtig (Nach diesem befehl wird übrigens gleich auf die gleiche seite ohne diesem befehl weitergeleitet).
Hi Paul!
die php man enpfiehlt eine Umleitung der Ausgabe in eine Datei, aber alle meine Versuche in diese Richtung sind fehlgeschlagen.
Wie sehen denn deine Versuche in diese Richtung aus?mfG
Benjamin
Hi Paul!
Kann man eigentlich die stdout bei php direkt umleiten?
Das Umleiten an sich dürfte mit php gar nichts zu tun haben. Du rufst das Programm einfach mit "foo.exe > bar.txt" auf.
Muss ja nicht mal ne datei sein, kann auch ins leere gehen, die ausgaben des programms nicht für mich nicht so wichtig.
In dem Fall kann man soweit ich weiß nach NUL umleiten. Also "foo.exe > NUL". Müsstest Du mal testen.
mfG
Benjamin
Hallo Benjamin,
versuchte es jetzt mit:
exec("wsms.exe > log.txt");
aber es kommt aufs selbe raus, php bleibt hängen.
in der log datei kommt ein recheckiges zeichen, vermute mal
ein Sonderzeichen an. -> Umleitung funzt mehr oder weniger.
thx,
Paul
Hi Paul!
Kann man eigentlich die stdout bei php direkt umleiten?
Das Umleiten an sich dürfte mit php gar nichts zu tun haben. Du rufst das Programm einfach mit "foo.exe > bar.txt" auf.Muss ja nicht mal ne datei sein, kann auch ins leere gehen, die ausgaben des programms nicht für mich nicht so wichtig.
In dem Fall kann man soweit ich weiß nach NUL umleiten. Also "foo.exe > NUL". Müsstest Du mal testen.mfG
Benjamin
Hallo Paul,
versuchte es jetzt mit:
exec("wsms.exe > log.txt");
schon mal exec("start wsms.exe > log.txt"); ausprobiert? Start startet ein Programm und gibt die Kontrolle sofort zurück.
Gruß, Jürgen
Hallo Jürgen,
Danke für den Tip.
Ändert aber leider nichts.
PHP bleibt hängen.
(Hab das mit start auch schon über ne batch datei versucht)
Glaub das hängt auch damit zusammen, dass der system user das
Programm startet
thx,
Paul
Hallo Paul,
versuchte es jetzt mit:
exec("wsms.exe > log.txt");schon mal exec("start wsms.exe > log.txt"); ausprobiert? Start startet ein Programm und gibt die Kontrolle sofort zurück.
Gruß, Jürgen