GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Linux Nohup-Befehl

Das nohup Befehl führt ein anderes als Argument angegebenes Programm aus und ignoriert alle SIGHUP (Auflege-)Signale. SIGHUP ist ein Signal, das an einen Prozess gesendet wird, wenn sein steuerndes Terminal geschlossen wird.

Wenn Sie ein Programm über SSH ausführen, wird die Sitzung normalerweise beendet, wenn Ihre Verbindung unterbrochen wird oder Sie sich abmelden, und alle vom Terminal ausgeführten Prozesse werden angehalten. Hier ist der nohup Befehl ist praktisch. Es ignoriert alle Hangup-Signale und der Prozess wird weiter ausgeführt.

Verwendung des nohup-Befehls #

Die Syntax für nohup Befehl lautet wie folgt:

nohup COMMAND [ARGS]

Der Befehl akzeptiert keine anderen Optionen außer dem Standard --help und --version .

Schauen wir uns das folgende Beispiel an:

nohup mycommand
nohup: ignoring input and appending output to 'nohup.out'

nohup führt den mycommand aus Befehl in den Vordergrund und leitet die Befehlsausgabe auf nohup.out um Datei. Diese Datei wird im aktuellen Arbeitsverzeichnis erstellt. Wenn der Benutzer, der den Befehl ausführt, keine Schreibberechtigung für das Arbeitsverzeichnis hat, wird die Datei im Home-Verzeichnis des Benutzers erstellt.

Wenn Sie sich abmelden oder das Terminal schließen, wird der Vorgang nicht beendet.

Befehl im Hintergrund ausführen #

Mit nohup im Vordergrund ist nicht sehr nützlich, da Sie nicht mit der Shell interagieren können, bis der Befehl abgeschlossen ist.

Um den Befehl im Hintergrund auszuführen, hängen Sie & an Symbol am Ende des Befehls:

nohup mycommand &

Die Ausgabe enthält die Shell-Job-ID (in Klammern eingeschlossen) und die Prozess-ID:

[1] 25177

Über die Job-ID können Sie den Befehl mit fg in den Vordergrund holen Befehl.

Wenn Sie den Prozess aus irgendeinem Grund beenden möchten, verwenden Sie den kill Befehl, gefolgt von der Prozess-ID:

kill -9 25132

Umleitung der Ausgabe in eine Datei #

Standardmäßig nohup leitet die Befehlsausgabe auf nohup.out um Datei. Wenn Sie die Ausgabe in eine andere Datei umleiten möchten, verwenden Sie die Standard-Shell-Umleitung.

Zum Beispiel, um die Standardausgabe und den Standardfehler auf mycommand.out umzuleiten Sie würden verwenden:

nohup mycommand > mycommand.out 2>&1 &

So leiten Sie die Standardausgabe und den Standardfehler in verschiedene Dateien um:

nohup mycommand > mycommand.out 2> mycommand.err &

Alternativen #

Es gibt mehrere alternative Programme, die Sie verwenden können, um zu verhindern, dass ein Befehl beendet wird, wenn Sie das Terminal schließen oder die Verbindung trennen.

Bildschirmnummer

Screenor GNU Screen ist ein Terminal-Multiplexer-Programm, mit dem Sie eine Bildschirmsitzung starten und eine beliebige Anzahl von Fenstern (virtuellen Terminals) innerhalb dieser Sitzung öffnen können. Prozesse, die in Screen ausgeführt werden, werden weiterhin ausgeführt, wenn ihr Fenster nicht sichtbar ist, selbst wenn Sie die Verbindung trennen.

Tmux-Nummer

Tmux ist eine moderne Alternative zum GNU-Bildschirm. Mit Tmux können Sie auch eine Sitzung erstellen und mehrere Fenster innerhalb dieser Sitzung öffnen. Tmux-Sitzungen sind dauerhaft, was bedeutet, dass Programme, die in Tmux ausgeführt werden, auch dann weiter ausgeführt werden, wenn Sie das Terminal schließen.

Disown #

disown ist ein Shell-Builtin, das einen Shell-Job aus der Job-Steuerung der Shell entfernt. Im Gegensatz zu nohup , können Sie disown verwenden auch auf laufenden Prozessen.

Schlussfolgerung #

nohup können Sie verhindern, dass Befehle beendet werden, wenn Sie sich abmelden oder das Terminal verlassen.

Wenn Sie Fragen oder Feedback haben, können Sie gerne einen Kommentar hinterlassen.


Linux
  1. Linux-mv-Befehl

  2. Linux-Du-Befehl

  3. Linux-IP-Befehl

  4. Linux-cd-Befehl

  5. nohup-Befehlsoptionen in Linux

Datumsbefehl in Linux

W-Befehl unter Linux

Bei Befehl unter Linux

Nohup Linux-Befehl mit Beispielen

Df-Befehl unter Linux

Nohup-Befehl unter Linux