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
0
A
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 &
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
Won dies das erste Skript hängen bleiben, bis der andere stirbt/Ausgänge obwohl? – Jon
Ah, in der Tat, ich habe diesen Teil der Frage vermisst lassen Sie mich aktualisieren ... –