2011-01-11 14 views
0

Ich mache ein Skript (Perl oder shell), die ein zweites Skript Perl startet. Das Skript, das gestartet wird, hat Tausende von Ausgabezeilen. Also im Grunde möchte ich ein Skript machen, das ein anderes Skript ohne Ausgabe startet - und wenn möglich innerhalb einer screen Sitzung ausführen und dann das Skript beenden (doch die andere läuft in der screen)? Wie kann ich das machen?Starten eines Perl-Skripts ohne Ausgabe

Antwort

4

Wenn Sie Ihre Skript-Direktausgabe zu /dev/null starten. Um ein Skript im Hintergrund auszuführen, verwenden Sie das Symbol &. Zum Beispiel wird die Folge nichts in der Konsole zeigen und laufen im Hintergrund ...

echo hi > /dev/null & 
+0

Won dies das erste Skript hängen bleiben, bis der andere stirbt/Ausgänge obwohl? – Jon

+0

Ah, in der Tat, ich habe diesen Teil der Frage vermisst lassen Sie mich aktualisieren ... –

2

Wenn Sie in screen ausführen möchten, müssen Sie eine screenrc

#!/bin/sh 
echo "screen my_perl_program" > /tmp/$$.screenrc 
echo "autodetach on" >> /tmp/$$.screenrc 
echo "startup_message off" >> /tmp/$$.screenrc 
screen -L -dm -S session1 -c /tmp/$$.screenrc 

erstellen Dann können Sie wiederherstellen es mit screen -S session1

Verwandte Themen