Website-Suche

Nohup-Befehl unter Linux mit Beispielen


Der Befehl nohup in Linux wird verwendet, um einen Prozess anzuweisen, alle empfangenen SIGHUP-Signale (Auflegen) zu ignorieren. Das SIGHUP-Signal wird immer dann an einen Hintergrundjob gesendet, wenn das aktuelle Terminal geschlossen wird. So können wir einen Job im Hintergrund haben, das Terminal schließen und sehen, wie er immer noch im Hintergrund läuft.

In diesem Tutorial lernen Sie anhand von Beispielen, wie Sie den Befehl nohup unter Linux verwenden. Im Folgenden erfahren Sie mehr über die verschiedenen Optionen, die Sie mit diesem Befehl verwenden können.

In diesem Tutorial lernen Sie:

  • So verwenden Sie den Befehl nohup unter Linux

Häufig verwendete Optionen

Jeder Prozess, der von einem Terminal aus gestartet wird, ist als untergeordneter Prozess an die Shell gebunden, von der aus er ausgeführt wurde. In der Situation, in der ein übergeordnetes Programm beendet wird, wird auch der untergeordnete Prozess beendet.

Dies ist kein besonders erwünschtes Verhalten, wenn ein Benutzer einen Prozess remote ausführen und den Prozess nach der Abmeldung ausführen lassen muss. Aus diesem Grund gibt es den Befehl nohup. Der nohup-Befehl in Linux stellt sicher, dass der Prozess nicht an eine bestimmte Shell gebunden ist, sodass der Benutzer einen Shell-Prozess beenden kann, indem er sich abmeldet, und der mit nohup ausgeführte Prozess wird am Leben erhalten.

Schauen Sie sich die folgenden Beispiele an, um den nohup Linux-Befehl in kurzer Zeit zu beherrschen.

nohup-Befehl in Linux-Beispielen

  1. Um den nohup-Befehl zu verwenden, führen Sie einfach einen Befehl wie gewohnt aus, aber setzen Sie den nohup-Befehl davor. Hier ist ein Beispiel, bei dem wir den Befehl sleep in den Hintergrund stellen.

    
    nohup sleep 10000 &
    [1] 1908
    nohup: ignoring input and appending output to 'nohup.out'
    

    Wir haben das Terminal geschlossen und wieder geöffnet, dann haben wir den folgenden Befehl ausgeführt, der zeigt, dass der Sleep-Befehl dank nohup noch läuft.

    
    ps aux | grep sleep
    linuxco+    1908  0.0  0.0   8084   524 ?        S    13:05   0:00 sleep 10000
    

    Beachten Sie, dass Sie den Hintergrundauftrag mit dem Befehl fg in den Vordergrund bringen können.

    
    fg
    
  2. Standardmäßig wird die Ausgabe in die Textdatei nohup.out umgeleitet. Wenn Sie die Ausgabe in eine andere Datei umleiten möchten, geben Sie einfach den Namen der Datei in Ihrem Befehl an.

    
    nohup some_script.sh > output.txt
    
  3. Um mehrere Befehle mit nohup auszuführen, verwenden Sie den Befehl bash und dann die verschiedenen Befehle, die Sie ausführen möchten.

    
    nohup bash -c 'who && uptime'
    

NOTE
Sie können jederzeit den Befehl man verwenden, um mehr über den Befehl nohup und seine offizielle Dokumentation zu erfahren. Klicken Sie auf den vorherigen Link, um zu sehen, wie Sie die Handbuchseiten für einen beliebigen Befehl auf einem Linux-System öffnen.

Abschließende Gedanken

In diesem Tutorial haben wir alles über den Befehl nohup unter Linux gelernt. Der nohup-Befehl ist ein sehr einfacher Befehl, der verwendet wird, um einen Befehl auch dann am Laufen zu halten, wenn das Terminal oder die Bash-Shell geschlossen ist, indem das an den Befehl gesendete Auflegen-Signal ignoriert wird. Normalerweise ist dies auch mit einem kaufmännischen Und-Zeichen & gekoppelt, um einen Befehl oder ein Skript im Hintergrund weiter ausführen zu können.

Verwandte Artikel: