Thread Skript nach Programmaufruf fortsetzen (12 answers)
Opened by IceRage at 2008-09-16 02:13

IceRage
 2008-09-16 11:00
#114694 #114694
User since
2008-09-07
93 Artikel
BenutzerIn
[default_avatar]
Hallo, und vielen Dank erstmal für die Rückmeldungen.


murphy+2008-09-16 00:55:26--
@IceRage: Wenn man explizit wait aufruft, darf man sich nicht wundern, dass der Elternprozess auf seine Kinder wartet, bevor er weiter läuft.

Also ich habe das wait() jetzt mal rausgenommen, der Eltern Prozess läuft aber leider dennoch nicht an. Erst wenn dich das aufgerufene Programm beendet habe.


murphy+2008-09-16 00:55:26--
@moritz: Da vor dem system aufruf geforkt wird, ist es eigentlich keinesfalls nötig, mit einem & die Shell anzuweisen, den Prozess in den Hintegrund zu stellen.

Wenn ich das Ampersand an die richtige Stelle setze, läuft das Skript wie gewünscht ab. Das ist schon mal ein Fortschritt ;-)


murphy+2008-09-16 00:55:26--
Wenn man in diesem einfachen Anwendungsfall selber forkt, könnte man aber statt system sicherer und resourcenschonender exec verwenden. Wenn man system nehmen will, könnte man sich das forken sparen und, wie moritz schreibt, den Befehl durch die Shell in den Hintergrund stellen lassen.

Das werde ich mal so machen denke ich. Scheint genau das dabei heraus zu kommen, was ich brauche.


murphy+2008-09-16 00:55:26--
Am besten ist es aber wahrscheinlich, etwas wie CPAN:Proc::SafeExec zu verwenden.

Thx, für den Tipp. Schau ich mir mal an.



Mir ist noch etwas Anderes aufgefallen. Wenn ich mir mal den Rückgabewert vom READER anschaue, also die PID die bei:

Code (perl): (dl )
my @line = <READER>;


ausgelesen wird, dann ist der immer exakt um den Betrag 2 zu gering, im Vergleich zu einer Ausgabe mit ps -aux | grep firefox. Das ist wirklich immer so. Weil das so ist, ist es ja nicht weiter schlimm. Ich kann ja immer den Betrag 2 hinzu addieren. Aber ich finde das schon recht merkwürdig und eigentlich auch nicht wirklich sicher ... vielleicht unterscheiden sich die Werte dann doch mal um 3, oder 1 und nicht um 2.


Gruß, IceRage

View full thread Skript nach Programmaufruf fortsetzen