Ich muss ein Skript ausführen, dessen Ausführung sehr lange dauert, oder ich möchte, dass es für immer ausgeführt wird. Ich kann nicht einfach eine SSH-Verbindung zu meinem Computer herstellen, da er beim Trennen der Verbindung nicht mehr ausgeführt wird.
Gibt es eine Möglichkeit, ein Skript auszuführen, das nicht von der Shell abhängt, von der es gestartet wurde?
Ich benutze Ubuntu 9.04.
Ich benutze immer nur nohup. Wenn mir die Ausgabe wichtig ist, leite ich sie in eine Protokolldatei um, andernfalls sende ich sie an / dev / null.
Beispiel:
Das versetzt es in den Hintergrund, wobei die Ausgabe nach / dev / null geht, und es ist immun gegen das HUP-Signal, wenn Sie sich ausloggen. Sie können den Job auch mit bestimmten Shells "ablehnen" (z. B. Bash), damit er nicht mit Ihrer Sitzung verbunden ist.
quelle
So installieren Sie den Bildschirm:
apt-get install screen
Dann starten Sie einfach mit:
screen
Und
man screen
um die Schlüsselbindung zu bekommen.quelle
Wenn Sie bei einem Server angemeldet sind, können Sie ein Skript mit dem folgenden Befehl im getrennten Modus ausführen:
Wenn Sie sich später erneut anmelden, können Sie script.out auf Ausgaben und script.err auf Fehlermeldungen überprüfen. Wenn Sie Ausgabe- und Fehlermeldungen in derselben Datei erhalten möchten, gehen Sie folgendermaßen vor:
quelle