Nohup Command in Linux
Beim Verlassen der Shell eines Linux-Systems werden normalerweise alle laufenden Prozesse beendet oder hängen. Was tun Sie also, wenn Sie die Prozesse auch nach dem Verlassen der Shell/des Terminals weiterlaufen lassen möchten? Hier kommt der Nohup Command ins Spiel.
Nohup Command
Nohup, kurz für no hang up, ist ein Command in Linux-Systemen, der Prozesse auch nach dem Verlassen der Shell oder des Terminals weiterlaufen lässt. Nohup verhindert, dass die Prozesse oder Jobs das SIGHUP (Signal Hang UP) Signal erhalten. Dies ist ein Signal, das an einen Prozess gesendet wird, wenn das Terminal geschlossen oder verlassen wird. In diesem Leitfaden werfen wir einen Blick auf den Nohup Command und demonstrieren, wie er verwendet werden kann.
Nohup Command in Linux Syntax
Die Syntax des Nohup Commands lautet wie folgt;
nohup command arguments
ODER
nohup options
Lassen Sie uns sehen, wie der Command ins Spiel kommt
Überprüfung der Version von Nohup
Sie können beginnen, indem Sie die Version von Nohup mit der untenstehenden Syntax überprüfen
nohup --version
Output
Starten eines Prozesses mit Nohup
Wenn Sie Ihre Prozesse/Jobs am Laufen halten möchten, setzen Sie dem Befehl nohup wie unten gezeigt voran. Die Jobs werden weiterhin in der Shell ausgeführt und werden beim Verlassen der Shell oder des Terminals nicht beendet.
nohup ./hello.sh
Output
Aus der obigen Ausgabe wurde die Ausgabe des Commands in nohup.out gespeichert, um dies zu überprüfen, führen Sie aus,
cat nohup.out
Output
Zusätzlich können Sie die Ausgabe in eine andere Datei umleiten, wie gezeigt
nohup ./hello.sh > output.txt
Noch einmal, um die Datei anzusehen, führen Sie aus
cat output.txt
Output
Um in eine Datei umzuleiten und sowohl Standardfehler als auch Standardausgabe zu verwenden, verwenden Sie das > Dateiname 2>&1 Attribut wie gezeigt
nohup ./hello.sh > myoutput.txt 2>&1
Output
Starten eines Prozesses im Hintergrund mit Nohup
Um einen Prozess im Hintergrund zu starten, verwenden Sie das &-Symbol am Ende des Commands. In diesem Beispiel pingen wir google.com an und senden es in den Hintergrund.
nohup ping google.com &
Output
Um den Prozess beim Wiederaufnehmen der Shell zu überprüfen, verwenden Sie den pgrep Command wie gezeigt
pgrep -a ping
Output
Wenn Sie den laufenden Prozess stoppen oder beenden möchten, verwenden Sie den kill Command gefolgt von der Prozess-ID wie gezeigt
kill 2565
Output
Zusammenfassung
- Alle Prozesse, die mit dem Nohup Command ausgeführt werden, ignorieren das SIGHUP Signal auch beim Verlassen der Shell.
- Sobald ein Job mit dem Nohup Command gestartet oder ausgeführt wird, steht stdin dem Benutzer nicht zur Verfügung.
- Standardmäßig wird nohup.out als Standarddatei für stdout und stderr verwendet.