mmofacts.com

Programm im Hintergrund starten

gepostet vor 18 Jahre von Fornax
Ich weiß, es ist eine Noob-Frage, doch jetzt habe ich das Problem auch.
Wie startet man ein Programm im Hintergrund auf dem Server? Ich habe schon zwei Ansätze verfolgt, beide funktionieren, jedoch nicht so wie ich es will.
Ich habe mich extra in asp.NET eingearbeitet, finde den Ansatz von asp.net ganz gut, aber jetzt weiche ich vom Thema ab.
Wenn ich über eine asp-Seite mein Programm starte, läuft es, jedoch bekomme ich es nicht zu sehen. Es ist ein konsolenbasiertes Programm, und diese Konsole bräuchte ich...
// start.aspx.cs

[...]
Process myProcess = new Process();
string path = @"C:\Dokumente und Einstellungen\André\Eigene Dateien\Programming\FGEngine\FGEngine.exe";
try{
myProcess = Process.Start(path);
}
catch(Win32Exception exp){
[...]
Das habe ich aus verschiedenen Seiten zusammengebastelt. Was ich auch probiert hatte, war über ProcessStartInfo WindowStyle es sichtbar zu machen, doch das zeigte keine Wirkung.
Mein zweiter Ansatz war mit PHP. Wenn ich mein Programm direkt über shell_exec starten will, war mir klar, dass das Programm nur solange läuft, wie php, bzw andersherum. Desshalb habe ich eine .cmd-Datei geschrieben und ausprobiert: "start FGEngine.exe". Wenn ich sie (per doppelklick) ausführe öffnet sich mein Programm wie gewollt in einem neuem Fenster, und das andere Schließt sich. Desshalb hätte ich erwartet, dass PHP die cmd ausführt, und dann weiterläuft. Anscheinend wartet es, bis auch das Programm geschlossen wird
gepostet vor 18 Jahre von Itchy
Ich verstehe nicht ganz - Du willst ein Programm im Hintergrund starten, erwartest aber ein Fenster? Bitte präzisiere doch, was genau Du meinst.
gepostet vor 18 Jahre von Fornax
Sorry, 'Hintergrund' trifft es nicht ganz.
Das Programm soll auf dem Server, bzw. bei mit Lokal, laufen, und ich möchte es "sehen". Wie genau es gestartet wird ist mir egal, nur sollte man es über Web starten können, und dann auf dem Server zu sehen sein (per vnc), damit man in die Konsole eingaben machen kann.
gepostet vor 18 Jahre von Itchy
Hab grad was gefunden im PHP-Manual zu exec:
Note: If you start a program using this function and want to leave it running in the background, you have to make sure that the output of that program is redirected to a file or some other output stream or else PHP will hang until the execution of the program ends.
Ich kanns leider unter Windows nicht ausprobieren, da ich keine PHP Installation auf Windows habe, aber Du kannst mal ein
start FGEngine.exe > \output.txt

probieren in Deinem Skript.
gepostet vor 18 Jahre von TheUndeadable
> Das Programm soll auf dem Server, bzw. bei mit Lokal, laufen, und ich möchte es "sehen". Wie genau es gestartet wird ist mir egal, nur sollte man es über Web starten können, und dann auf dem Server zu sehen sein (per vnc), damit man in die Konsole eingaben machen kann.
Unter Windows nicht möglich, da der IIS auf einem eigenen Benutzerkonto läuft und keinen Zugriff auf den angemeldeten Desktop hat.
Eine Möglichkeit wäre, dass du per Autostart ein kleines Programm startest, dass eine Named-Pipe (entspricht einem Unix-Socket) öffnet.
Per ASP.Net verbindest du dich nun mit dieser Pipe und übermittelst dem Programm ein Kommando, dass es ein Fenster anzeigen soll.
Eine andere Lösung erscheint mir nicht vernünftig.
gepostet vor 18 Jahre von Fornax
Mist X.X
Dann werde ich dafür wohl was anderes machen, wsl ein Web-Interface

Auf diese Diskussion antworten