Wenn Sie einen Unix-Job im Hintergrund ausführen (mit &, bg Befehl) und sich von der Sitzung abmelden, wird Ihr Prozess beendet. Sie können dies mit verschiedenen Methoden vermeiden — Ausführen des Jobs mit nohup oder als Batch-Job mit dem Befehl at, batch oder cron.
Dieser schnelle Tipp ist für Anfänger. Wenn Sie nohup schon eine Weile verwenden, hinterlassen Sie uns einen Kommentar und teilen Sie uns mit, in welchen Situationen Sie nohup verwenden.,
Lassen Sie uns in diesem kurzen Tipp überprüfen, wie Sie Ihren Prozess auch nach dem Abmelden mit nohup ausführen können.
Nohup steht für no hang up, das wie unten gezeigt ausgeführt werden kann.
nohup Syntax:
# nohup command-with-options &
Nohup ist sehr hilfreich, wenn Sie ein Shell-Skript oder einen Befehl ausführen müssen, dessen Ausführung lange dauert. In diesem Fall möchten Sie nicht mit der Shell verbunden sein und warten, bis der Befehl abgeschlossen ist. Führen Sie es stattdessen mit nohup aus, beenden Sie die Shell und fahren Sie mit Ihrer anderen Arbeit fort.
Erklärung zu nohup.,out file
Standardmäßig wird die Standardausgabe zu nohup umgeleitet.out-Datei im aktuellen Verzeichnis. Und der Standardfehler wird zu stdout umgeleitet, also auch zu nohup.aus. Also, dein Nohup.out enthält sowohl Standardausgabe-als auch Fehlermeldungen aus dem Skript, das Sie mit dem Befehl nohup ausgeführt haben.
Anstelle von nohup.out können Sie die Ausgabe auch mithilfe der normalen Shell-Umleitungen in eine Datei umleiten.,
Beispiel: Drucken von Zeilen in beide Standardausgaben & Standardfehler
while(true)doecho "standard output"echo "standard error" 1>&2 sleep 1;done
Führen Sie das Skript ohne Umleitung aus
Führen Sie das Skript mit Umleitung aus
Wenn Sie sich von der Shell abmelden und erneut anmelden, sehen Sie immer noch den custom-script.sh laufen im Hintergrund.
$ ps aux | grep sathiya sathiya 12034 0.0 0.1 4912 1080 pts/2 S 14:10 0:00 sh custom-script.sh