So verwenden Sie & und nohup im Hintergrund von Linux

So verwenden Sie & und nohup im Hintergrund von Linux

Wenn wir in einem Terminal oder einer Konsole arbeiten, möchten wir den Bildschirm möglicherweise nicht mit der Ausführung eines Jobs belegen, da es möglicherweise wichtigere Dinge zu tun gibt, wie beispielsweise das Lesen von E-Mails. Prozesse mit intensivem Festplattenzugriff sollten vorzugsweise außerhalb der Stoßzeiten (z. B. am frühen Morgen) ausgeführt werden. Um die Ausführung dieser Prozesse im Hintergrund, also nicht auf dem Terminalbildschirm, zu ermöglichen, stehen mehrere Optionen zur Verfügung.

und

Wenn ein Job im Vordergrund ausgeführt wird, wird das Terminal durch den Job belegt. Sie können nach dem Befehl ein & hinzufügen, um ihn im Hintergrund auszuführen. Beispiel: sh test.sh &
Zu den Befehlen, die für die Ausführung im Hintergrund geeignet sind, gehören „Find“, „zeitaufwändiges Sortieren“ und einige Shell-Skripte. Seien Sie vorsichtig, wenn Sie Jobs im Hintergrund ausführen: Führen Sie keine Befehle im Hintergrund aus, die eine Benutzerinteraktion erfordern, denn dann bleibt Ihr Computer einfach stehen und wartet. Im Hintergrund laufende Jobs geben jedoch weiterhin Ergebnisse auf dem Bildschirm aus und stören so Ihre Arbeit. Wenn der Job, den Sie im Hintergrund ausführen möchten, eine große Ausgabe erzeugt, leiten Sie seine Ausgabe am besten mit der folgenden Methode in eine Datei um:

Befehl > out.file 2>&1 &

Auf diese Weise werden die gesamte Standardausgabe und Fehlerausgabe in eine Datei namens out.file umgeleitet.

PS: Nach erfolgreichem Absenden des Prozesses wird eine Prozess-ID angezeigt, mit deren Hilfe der Prozess überwacht oder beendet werden kann. (ps -ef | grep Prozessnummer oder kill -9 Prozessnummer)

nein

Nach Verwendung des &-Befehls wird der Job zur Ausführung in den Hintergrund gestellt. Die aktuelle Konsole ist nicht belegt, aber sobald die aktuelle Konsole geschlossen wird (beim Abmelden vom Konto), wird die Ausführung des Jobs beendet. Der Befehl „nohup“ kann den entsprechenden Prozess weiter ausführen, nachdem Sie sich von Ihrem Konto abgemeldet haben. nohup bedeutet „nicht auflegen“. Die allgemeine Form des Befehls lautet:

nohup-Befehl &

Wenn Sie einen Job mit dem Befehl „nohup“ übermitteln, wird standardmäßig die gesamte Ausgabe des Jobs in eine Datei mit dem Namen „nohup.out“ umgeleitet, sofern keine andere Ausgabedatei angegeben ist:

nohup-Befehl > myout.file 2>&1 &

Viele Leute ignorieren es einfach, nachdem sie nohup verwendet haben. Tatsächlich ist es möglich, dass der Befehl automatisch beendet wird, wenn das aktuelle Konto verlassen oder abnormal beendet wird. Nachdem Sie den Befehl mit dem Befehl „nohup“ im Hintergrund ausgeführt haben, müssen Sie das aktuelle Konto daher mit „exit“ normal beenden, um sicherzustellen, dass der Befehl weiterhin im Hintergrund ausgeführt wird.

Strg + Z
Ein im Vordergrund ausgeführter Befehl kann in den Hintergrund gestellt und in einen angehaltenen Zustand versetzt werden.

Strg+c
Beendet den Vordergrundbefehl.

Jobs
Überprüfen Sie, wie viele Befehle derzeit im Hintergrund ausgeführt werden.

Die Option jobs -l zeigt die PID aller Aufgaben an. Der Status der Jobs kann „Läuft“, „Angehalten“ oder „Beendet“ sein. Wenn die Aufgabe jedoch beendet (abgebrochen) wird, entfernt die Shell die Prozess-ID der Aufgabe aus der Liste, die der aktuellen Shell-Umgebung bekannt ist.

2>&1Analyse

Befehl >out.file 2>&1 &
  1. command>out.file leitet die Ausgabe des Befehls in die Datei out.file um, d. h. der Ausgabeinhalt wird nicht auf dem Bildschirm gedruckt, sondern in die Datei out.file ausgegeben.
  2. 2>&1 leitet den Standardfehler an die Standardausgabe um. Die Standardausgabe wurde hier an die Datei out.file umgeleitet, d. h. der Standardfehler wird auch an die Datei out.file ausgegeben. Das letzte & bewirkt, dass der Befehl im Hintergrund ausgeführt wird.
  3. Überlegen Sie, was 2>1 bedeutet. 2 in Kombination mit > bedeutet Fehlerumleitung, und 1 bedeutet, dass der Fehler in eine Datei 1 umgeleitet wird, nicht in die Standardausgabe. Wenn es in 2>&1 geändert wird, bedeutet & in Kombination mit 1 die Standardausgabe, und der Fehler wird in die Standardausgabe umgeleitet.

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Linux nohup, um Programme im Hintergrund auszuführen und anzuzeigen (nohup und &)
  • Lösen Sie das Problem der im Hintergrund laufenden Python-Nohup-Linux-Ausgabe
  • PHP-Daemon-Prozess plus Linux-Befehl nohup zur Implementierung der Aufgabenausführung einmal pro Sekunde
  • Detaillierte Erklärung der Lösung für das Problem, dass die Nohup-Protokollausgabe unter Linux zu groß ist
  • Verwendung von nohup und tail-f unter Linux
  • Nohup und Anzeigen und Beenden von im Hintergrund laufenden Prozessen unter Linux

<<:  Ein-Klick-Installation von MySQL 5.7 und Methode zur Änderung der Kennwortrichtlinie

>>:  Vergleich der Leistung von int, char und varchar in MySQL

Artikel empfehlen

Mysql8.0 verwendet Fensterfunktionen, um Sortierprobleme zu lösen

Einführung in MySQL-Fensterfunktionen MySQL unter...

JavaScript-Grundlagenoperatoren

Inhaltsverzeichnis 1. Betreiber Zusammenfassen 1....

Natives js zum Erzielen eines Akkordeoneffekts

Auch bei der tatsächlichen Entwicklung von Websei...

Ausführliches Tutorial zur Installation von mysql 5.6.23 winx64.zip

Eine ausführliche Dokumentation zur Installation ...

Versprechenskapselung wx.request-Methode

Im vorherigen Artikel wurde die Implementierungsm...

Detaillierte Installation und Konfiguration von Subversion (SVN) unter Ubuntu

Wenn Sie Softwareentwickler sind, müssen Sie mit ...

Eine Methode zum Erstellen von Karussellbildern mit CSS3

Diashows sieht man häufig auf Webseiten. Sie enth...

jQuery verwendet das Canvas-Tag, um den Bestätigungscode zu zeichnen

Das <canvas>-Element ist für clientseitige ...

Snake-Spiel mit nativem JS schreiben

In diesem Artikel wird der spezifische Code zum S...

Führen Sie die Schritte zum Erstellen eines Squid-Proxyservers unter Linux aus.

Vorwort Dieser Artikel stellt hauptsächlich die r...

Hinweise zum Zeichengerätetreiber des Linux-Kernel-Gerätetreibers

/******************** * Zeichengerätetreiber*****...