Halihallo alligator
print 'Starte: D:\Programme\G6 FTP Server\G6FTPSrv.exe'."\n";
#system("D:\Programme\G6 FTP Server\G6FTPSrv.exe");
Wieso denn doublequotes? - Wäre doch mit einfachen wesentlich einfacher.
#
D:\\Programme\\G6 FTP Server\\G6FTPSrv.exe
;
fork ("D:\Programme\G6 FTP Server\G6FTPSrv.exe");
perldoc -f fork
fork gabelt den Prozess, startet aber selber keinen anderen.
Jedoch ist es so, dass er mir das erste Programm startet, aber dann nich mehr zurückkommt um das 2 te Programm zu starten.
Alle deine exec's warten auf das beenden des gestarteten Prozesses. Wenn du dies um-
gehen willst, musst du deinen Prozess erst Gabeln und im Child-Prozess exec('prog')
ausführen; dies ist die "gängige" Methode.
Wenn ich aber das gestartete Programm beende, dann macht er weiter und startet das 2 Programm ... Also "system" bzw die Backticks warten anscheinend immer so lange bis der ausgeführte Systemaufruf beendet ist.
Ja.
Wenn ich das mit "exec" machen will, dass steigt das Script natürlich nach dem ersten exec() sowieso aus ...
Nicht wenn du vorher fork() ausführst, dann fährt der Parent-Prozess ja normal weiter.
Problem ist nur, dass fork() bei ActiveState Perl IMHO wohl implementiert ist, jedoch
nicht forked (mit anderen Worten: es kommt kein Fehler, aber richtig macht es Perl
auch nicht).
Ich glaube du müsstest dies z.B. in einer cygwin-Umgebung realisieren, um das Verhalten
von fork() genauer zu studieren (und alles andere auch, Windows taugt nunmal nicht für
POSIX-Funktionen). Andernfalls kannst du natürlich auch über Win32::* auf die Win-API
zugreifen und da die Prozesse starten lassen.
Viele Grüsse
Philipp
RTFM! - Foren steigern das Aufkommen von Redundanz im Internet, danke für das lesen der Manuals.
Selbstbedienung! - Das SelfForum ist ein Gratis-Restaurant mit Selbstbedienung, Menüangebot steht in den </faq/> und dem </archiv/>.