logo

nohup-Befehl unter Linux mit Beispielen

Jeder Befehl unter Linux startet zum Zeitpunkt seiner Ausführung einen Prozess, der beim Verlassen des Terminals automatisch beendet wird. Angenommen, Sie führen Programme über SSH aus und wenn die Verbindung unterbrochen wird, wird die Sitzung beendet, alle ausgeführten Prozesse werden gestoppt und es kann zu einer großen versehentlichen Krise kommen. In solchen Fällen kann die Ausführung von Befehlen im Hintergrund für den Benutzer sehr hilfreich sein, und genau hier kommt es an nohup-Befehl kommt ins Bild. nohup (Kein Auflegen) ist ein Befehl in Linux-Systemen, der den Prozess auch nach der Abmeldung von der Shell/dem Terminal ausführt.

Nohup-Kommando

Normalerweise wird jeder Prozess in Linux-Systemen a gesendet SIGHUP (Signal hängt auf) Dieser ist dafür verantwortlich, den Vorgang nach dem Schließen/Verlassen des Terminals zu beenden. Der Nohup-Befehl verhindert, dass der Prozess dieses Signal empfängt, wenn das Terminal/die Shell geschlossen oder verlassen wird. Sobald ein Job mit dem Befehl nohup gestartet oder ausgeführt wird, stdin steht dem Benutzer nicht zur Verfügung und nohup.out Datei wird als Standarddatei für verwendet stdout Und stderr . Wenn die Ausgabe des Befehls nohup in eine andere Datei umgeleitet wird, nohup.out Datei wird nicht generiert.



Nohup-Befehlssyntax

Die Syntax für die Verwendung des Nohup-Befehls ist einfach:

Ein Shell-Skript ausführbar machen
nohup command [options] &>
  • `command`> : Gibt den Befehl oder das Skript an, den Sie ausführen möchten.
  • `[options]`> : Optionale Argumente oder Flags, die das Verhalten des Befehls ändern.
  • `&`> : Durch Platzieren eines kaufmännischen Und-Zeichens (&) am Ende des Befehls wird die Shell angewiesen, den Befehl im Hintergrund auszuführen.

Arbeiten mit nohup Command

Überprüfen der Version von Nohup

Das Überprüfen der Nohup-Version ist ein einfacher Vorgang. Normalerweise können Sie die auf Ihrem System installierte Version von Nohup überprüfen, indem Sie „ --version`> Flagge. Führen Sie einfach den folgenden Befehl aus:



nohup --version>

Ausgabe:

Starten eines Prozesses mit Nohup

Um einen Prozess mit Nohup zu starten, stellen Sie dem gewünschten Befehl einfach vorannohup>. Wenn Sie beispielsweise ein Bash-Skript mit dem Namen ausführen möchtengeekfile.py>Wenn Sie Nohup verwenden, verwenden Sie den folgenden Befehl:



nohup bash geekfile.sh>

Ausgabe:

Um die Ausgabe an die umzuleiten Ausgabe.txt Datei:

nohup bash geekfile.sh>Ausgabe.txt>

Ausgabe:

Array-Länge Java

Mit Nohup einen Prozess im Hintergrund starten

Um den Befehl im Hintergrund auszuführen, muss der Befehl „ &’ Das Symbol wird am Ende des Befehls angehängt. Nach der Ausführung kehrt es nicht zur Shell-Eingabeaufforderung zurück, nachdem der Befehl im Hintergrund ausgeführt wurde. Es kann mit dem wieder in den Vordergrund gebracht werden fg Befehl.

nohup bash geekfile.sh & fg>

Ausgabe:

Pythonschlange vs. Anakonda

Notiz: Die Zahl in eckigen Klammern stellt die dar Job-ID und die Zahl daneben ist die Prozess ID .

Um mehrere Befehle im Hintergrund auszuführen

Mit dem Befehl nohup können mehrere Befehle im Hintergrund ausgeführt werden.

nohup bash -c 'commands'>

Beispiel:

nohup bash -c 'cal && ls'>

Ausgabe:

Hier wird die Ausgabe standardmäßig in gespeichert nohup.out . Um es umzuleiten, geben Sie Folgendes ein:

nohup bash -c 'commands'>Dateiname.txt>

Beispiel:

nohup bash -c 'cal && ls'>Ausgabe.txt>

Ausgabe:

Verzeichnisnamen unter Linux ändern

nohup-Befehl unter Linux – FAQs

Was ist der nohup> Befehl unter Linux, und was macht er?

Der nohup> Der Befehl steht für „Kein Auflegen“. Damit können Sie einen Befehl oder ein Shell-Skript so ausführen, dass es auch dann weiter ausgeführt wird, wenn Sie sich abmelden oder das Terminal schließen. Dadurch wird verhindert, dass der Befehl beendet wird, wenn die Terminalsitzung endet.

Unterschied zwischen einem Löwen und einem Tiger

Wie verwende ich die nohup> Befehl?

Benutzen nohup> , stellen Sie es einfach dem Befehl voran, den Sie ausführen möchten. Zum Beispiel:

nohup command_to_run &>

Der &> Das Symbol am Ende versetzt den Befehl in den Hintergrund, sodass Sie das Terminal weiterhin verwenden können, während der Befehl ausgeführt wird.

Woher kommt das nohup> die Ausgabe des Befehls senden?

Standardmäßig, nohup> Leitet sowohl die Standardausgabe (stdout) als auch die Standardfehlerausgabe (stderr) in eine Datei mit dem Namen um nohup.out> im aktuellen Verzeichnis. Bei Bedarf können Sie eine andere Ausgabedatei angeben.

Kann ich benutzen nohup> mit interaktiven Befehlen oder Programmen?

Während nohup> Wird normalerweise mit nicht interaktiven Befehlen oder Skripten verwendet. Sie können es auch mit interaktiven Befehlen verwenden. Das Verhalten kann jedoch unvorhersehbar sein, insbesondere wenn der Befehl Eingaben vom Benutzer erwartet. Es wird generell empfohlen, die Verwendung zu vermeiden nohup> mit interaktiven Programmen.

Wie kann ich den Status eines Befehls überprüfen, der mit ausgeführt wird? nohup> ?

Seit nohup> Führt den Befehl im Hintergrund aus, können Sie Standard-Linux-Tools wie verwenden ps> oder top> um den Status des Prozesses zu überprüfen. Zum Beispiel:

ps aux | grep>

Dadurch werden Ihnen Informationen über den Prozess angezeigt, einschließlich seiner PID (Prozess-ID), die Sie dann zum Verwalten oder Überwachen des Befehls verwenden können.

Abschluss

Wenn Sie unter Linux einen Befehl ausführen, wird dieser normalerweise gestoppt, wenn Sie das Terminal schließen. Aber mit nohup> können Sie es weiterlaufen lassen, auch nachdem Sie das Terminal geschlossen haben. Das ist besonders praktisch, wenn Sie Befehle aus der Ferne ausführen und nicht möchten, dass diese beendet werden, wenn die Verbindung unterbrochen wird.nohup>funktioniert, indem es Ihren Befehl vor Signalen schützt, die ihn normalerweise stoppen würden. Du fügst einfach hinzunohup>vor deinem Befehl, und es geht weiter. Sie können die Ausgabe des Befehls auch an eine Datei senden. Denken Sie daran, dass es am besten für nicht interaktive Aufgaben geeignet ist und Sie den Status Ihres Befehls mit Tools wie überprüfen könnenps>. Also,nohup>ist wie ein Sicherheitsnetz für Ihre Befehle, das sicherstellt, dass sie auch dann weitergegeben werden, wenn Sie nicht zuschauen.