hallo,
ich bin mit Perl am bauen und möchte gern mehrere Befehle an die Shell senden, aber das aktuelle Script nicht abrechen oder anhalten.
Perl kann, genauso wie die Shell selbst (übrigens: welche?) mit Pipes umgehen, vielleicht ist das eine Richtung, in der du überlegen könntest.
system("/usr/bin/firefox --display :1 > /dev/null");
Ich verstehe nicht, was du hier (und warum überhaupt) nach /dev/null schicken willst. Und: ist das ein CGI-Programm oder eines für die Konsole?
sleep(100);
... weitere Befehle ...
kill("KILL","firefox-bin");
Das Problem hier ist das Firefox zwar aufgeht, das Script aber solange stehen bleibt bis ich Firefox wieder abschiesse.
Du legst dein Script schließlich schlafen - ohne ihm ein Gutenachtlied vorgesungen zu haben, tststs. Und warum du deinen Firefox zuletzt killen willst, ist auch ein bißchen - naja, schwer verständlich. Aber insgesamt wird man wohl erst verstehen können, was du wirklich tun willst, wenn du die "weiteren Befehle" auch angibst, so daß dein Konzept etwas durchsichtiger wird.
Zudem würde ich gern nach dem öffnen des Browsers noch 2 weitere Befehle an die Shell senden.
Mit aller Vorsicht und etwas Rätselraterei: das könnte man möglicherweise so lösen, daß es gleich ein Shellscript ist, das du ausführst, und das lediglich irgendwann auch eine Perl-Akion initialisiert.
Wie kann ich verhindern das system wartet bis der ausgerufene Prozess beendet wurde?
http://perldoc.perl.org/functions/system.html
Grüße aus Berlin
Christoph S.