Hallo Cheatah
Weil er bei system() keine Bedeutung hat :-)
In der perlipc steht doch aber:
"Background Processes
You can run a command in the background with:
system("cmd &");
The command's STDOUT and STDERR (and possibly STDIN, depending on your shell) will be the same as the parent's. You won't need to catch SIGCHLD because of the double-fork taking place (see below for more details)."
Leider haben sämtliche Versuche mit fork zu einer Fehlermeldung geführt. Auch das scheinbar fehlerfreie, weil hier sehr häufig erwähnte, Script von Erik darüber habe ich nicht zum laufen bekommen. Das kann aber auch an mir liegen. Ich habe das Problem, daß ich scheinbar doch noch viel lernen muß. Einige kurze Antworten sind mir noch zu hoch.
Als ich das letzte mal eine ausführliche Beschreibung meines Problems hier schilderte, bekam ich unter anderem die Aussage
"Was Du wahrscheinlich brauchst, ist ein ganz normales Systemkommando, aber mit dem Operator "&" am Ende. Der sorgt dafür, daß der Prozeß vom Parent sauber abgetrennt wird - und dann sollte er auch dessen Ende überstehen."
Auch in anderen Foren kamen ähnliche Antworten auf ähnliche Fragen anderer. Selbst in der Original-Mailinglist von Activestate meine ich diese Antwort gelesen zu haben (wenn ich es richtig verstanden habe).
Es wäre klasse, wenn mir jemand mit einfachen Worten erklären könnte, warum es nicht funktioniert und wie ich fork oder exec und ActivePerl (hätte ich dies vielleicht schon früher erwähnen sollen?) benutzen muß. Aber wie gesagt, ich habe leider noch so meine Probleme mit Profierklärungen ;-(. Dazu noch die Fragen, die ich mir selbst zusammengereimt habe.
Könnte es sein, daß der "&"-Parameter durch den Direktstart mit DOS-basierender Pfadangabe "\" nicht richtig übergeben wird?
Wenn ja, kann ich die Syntax irgendwie ändern, das der Interpreter auch das versteht?
Vielleicht erkennt Ihr an meinem Text meine verzweifelte Lage. Denn es hängt momentan einiges davon ab, daß ich irgend eine Lösung finde.
Schon mal tausend Dank.
Thomas