Befehl „nohup“: Wenn Sie einen Prozess ausführen und glauben, dass der Prozess nicht beendet wird, wenn Sie sich von Ihrem Konto abmelden, können Sie den Befehl „nohup“ verwenden. Dieser Befehl kann den entsprechenden Prozess weiter ausführen, nachdem Sie sich vom Konto abgemeldet/das Terminal geschlossen haben. nohup bedeutet, nicht auflegen. Die allgemeine Form dieses Befehls lautet: nohup command & ls xxx 1>out.txt 2>&1 nohup /mnt/Nand3/H2000G >/dev/null 2>&1 & & 1 ist genauer gesagt Dateideskriptor 1, der sich im Allgemeinen auf STDOUT_FILENO bezieht. Diese Operation ist eigentlich ein dup2(2)-Aufruf. Sie gibt die Standardausgabe an all_result aus und kopiert die Standardausgabe dann in Dateideskriptor 2 (STDERR_FILENO). Als Ergebnis zeigen die Dateideskriptoren 1 und 2 auf denselben Dateitabelleneintrag, oder die Fehlerausgabe wird zusammengeführt. 0 steht für Tastatureingaben, 1 für Bildschirmausgaben und 2 für Fehlerausgaben. Der Standardfehler wird an die Standardausgabe umgeleitet und dann in /DEV/NULL ausgegeben. Für Laien bedeutet dies, dass alle Standardausgaben und Standardfehler in den Papierkorb geworfen werden. Befehl >out.file 2>&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>&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. Denken Sie darüber nach, was 2>1 bedeutet: 2 kombiniert mit > bedeutet Fehlerumleitung und 1 bedeutet, dass Fehler in eine Datei 1 und nicht in die Standardausgabe umgeleitet werden. Sie können Warum muss am Ende 2>&1 geschrieben werden? Befehl > Datei 2>&1 Zunächst leitet command > file die Standardausgabe in eine Datei um, und 2>&1 ist der Standardfehler, der die Standardausgabe kopiert, d. h., er wird ebenfalls in eine Datei umgeleitet. Das Endergebnis ist, dass sowohl die Standardausgabe als auch der Fehler in eine Datei umgeleitet werden. Befehl 2>&1 >Datei 2>&1 Standardfehler kopiert das Verhalten der Standardausgabe, aber die Standardausgabe befindet sich weiterhin im Terminal. >Datei Die Ausgabe wird in eine Datei umgeleitet, aber der Standardfehler bleibt im Terminal bestehen. Mit strace können Sie Folgendes sehen: 1. Befehl > Datei 2>&1 öffnen(Datei) == 3 dup2(3,1) dup2(1,2) 2. Befehl 2>&1 >Datei dup2(1,2) öffnen(Datei) == 3 dup2(3,1) Warum verwenden wir /dev/null 2>&1? Dieser Befehl bedeutet, dass die gesamte Standardausgabe und Fehlerausgabe nach /dev/null umgeleitet werden, d. h. alle generierten Informationen verworfen werden. Lassen Sie mich Ihnen den Unterschied zwischen Befehl > Datei 2>Datei und Befehl > Datei 2>&1 erklären. Zunächst bedeutet Befehl > Datei 2 > Datei, dass die vom Befehl generierten Standardausgabeinformationen und Fehlerausgabeinformationen an die Datei gesendet werden. Auf diese Weise werden stdout und stderr direkt an die Datei gesendet und die Datei wird zweimal geöffnet, sodass sich stdout und stderr gegenseitig überschreiben. Dies entspricht der Verwendung von FD1 und FD2, um gleichzeitig die Pipe der Datei zu belegen. Der Befehl >file 2>&1 sendet stdout direkt an die Datei, und stderr erbt die FD1-Pipe und wird dann an die Datei gesendet. Zu diesem Zeitpunkt wird die Datei nur einmal geöffnet und nur eine Pipe FD1 wird verwendet, die den Inhalt von stdout und stderr enthält. Aus Sicht der E/A-Effizienz ist die Effizienz des ersten Befehls geringer als die des zweiten Befehls. Daher verwenden wir beim Schreiben von Shell-Skripten häufig „Befehl > Datei 2>&1“. 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:
|
<<: Das WeChat-Applet implementiert das Schlangenspiel
Ich habe node.js zum Erstellen des Servers gewähl...
Das img-Tag in XHTML sollte wie folgt geschrieben...
Inhaltsverzeichnis 1. Ergebnisse erzielen 2. Back...
Kürzlich wurde die neue Anforderung „Front-End-Ca...
Bevor Sie diesen Artikel lesen, hoffe ich, dass S...
Ursache So importieren Sie externe Dateien in ein...
1. Zusätzlich zum Standardport 8080 versuchen wir...
Inhaltsverzeichnis 1. Handschriftliche Instanz vo...
Das Schönste, was in einer Produktionsumgebung pa...
Inhaltsverzeichnis Fehler 1: Zu viele Datenspalte...
In diesem Artikel wird der spezifische Code von V...
Nach einem abnormalen Herunterfahren von VMware w...
Weiterführende Literatur: MySQL8.0.20-Installatio...
Das Hinzufügen der richtigen VS Code-Erweiterung ...
Szenario: Die gecrawlten Daten erzeugen eine Date...