Einführung
SIGHUP
(Signal Hang UP) ist ein Signal, das einen Linux-Prozess beendet, wenn sein steuerndes Terminal geschlossen wird. Wenn Sie versehentlich ein Terminal schließen oder die Verbindung zum Server verlieren, werden alle zu diesem Zeitpunkt laufenden Prozesse automatisch beendet.
Verwenden von nohup
Befehl ist eine Möglichkeit, den SIGHUP
zu blockieren signalisieren und Prozesse auch nach dem Abmelden vom Terminal/der Shell abschließen lassen.
In diesem Artikel erfahren Sie, wie Sie nohup
verwenden Befehl beim Ausführen von Prozessen.
nohup-Syntax
Die Syntax für die Verwendung von nohup
Befehl ist:
nohup [command] [argument]
nohup-Optionen
Das nohup
Der Befehl verfügt über zwei grundlegende Befehlsoptionen, die --help
und die --version
Optionen.
Um die Hilfemeldung anzuzeigen, führen Sie den folgenden Befehl aus:
nohup --help
Um Versionsinformationen anzuzeigen, geben Sie Folgendes ein:
nohup --version
Nohup-Beispiele
Es gibt eine Reihe von Möglichkeiten, nohup
zu verwenden Befehl, einschließlich Ausführen des erforderlichen Prozesses im Hintergrund, Ausführen mehrerer Prozesse gleichzeitig oder Umleiten der Ausgabe in eine andere Datei.
Die folgenden Beispiele erläutern häufige Anwendungsfälle für nohup
Befehl.
1. Ausführen eines Prozesses mit nohup
So führen Sie einen Befehl mit nohup
aus Folgen Sie ohne Argumente einfach der Syntax:
nohup [command]
Die Shell ignoriert die Ausgabe und hängt sie an nohup.out an Datei.
Führen Sie zum Beispiel example.sh aus bash-Skript (ein einfaches Hello World -Skript) sollte Hello World anzeigen Nachricht in der nohup.out-Datei :
nohup bash example.sh
Überprüfen Sie den Inhalt der Datei mit:
cat nohup.out
2. Ausführen eines Prozesses im Hintergrund mit nohup
Das Ausführen eines Linux-Prozesses im Hintergrund entlastet das Terminal, in dem Sie arbeiten. Um einen Linux-Prozess im Hintergrund auszuführen, verwenden Sie nohup
Befehl, fügen Sie &
hinzu Symbol am Ende des Befehls:
nohup [command] &
Zum Beispiel, um example.sh auszuführen Bash-Skript im Hintergrund verwenden Sie den Befehl:
nohup bash example.sh &
Die Ausgabe zeigt die Shell-Job-ID und die Prozess-ID - [1] 7366 im Beispiel unten.
Geben Sie Folgendes ein, um den Befehl in den Vordergrund zu bringen:
fg
Die Ausgabe zeigt an, ob der Prozess im Gange oder abgeschlossen ist.
3. Ausführen mehrerer Prozesse im Hintergrund mit nohup
nohup bach -c '[command1] && [command2]'
Ersetzen Sie [command1]
und [command2]
mit den Befehlen Ihrer Wahl. Fügen Sie bei Bedarf weitere Befehle hinzu und achten Sie darauf, sie durch &&
zu trennen .
Um beispielsweise Datum/Uhrzeit und den Kalender des aktuellen Monats anzuzeigen, führen Sie Folgendes aus:
nohup bash -c 'date && cal'
Da die Ausgabe an nohup.out geleitet wird verwenden Sie den cat-Befehl, um den Inhalt der Datei aufzulisten und den obigen Befehl zu überprüfen:
cat nohup.out
Die Ausgabe zeigt das Datum und den Kalender, die mit dem obigen Befehl angefordert wurden.
4. Ausgabe in eine andere Datei umleiten
Wie im obigen Abschnitt erwähnt, nohup
protokolliert alle Ausgabemeldungen und Fehler in nohub.out Datei.
Leiten Sie diese Nachrichten um, indem Sie innerhalb des Befehls einen benutzerdefinierten Speicherort angeben:
nohup [command] > /path/to/output/file.txt
Im folgenden Beispiel die Ausgabe für den Befehl nohup bash -c 'date && cal'
wird zur output.txt umgeleitet Datei. Überprüfen Sie die Ausgabe mit dem Befehl:
cat output.txt