Verschiedene Möglichkeiten der Ausführung im Hintergrund von Linux (Zusammenfassung)

Verschiedene Möglichkeiten der Ausführung im Hintergrund von Linux (Zusammenfassung)

1. kein Aufhebens

Führen Sie das Programm so aus, dass das Auflegesignal ignoriert wird

Weitere Hinweise
Der Befehl „nohup“ kann das Programm so ausführen, dass das Auflegesignal ignoriert wird und die Ausgabeinformationen des ausgeführten Programms nicht auf dem Terminal angezeigt werden.
Unabhängig davon, ob Sie die Ausgabe des Befehls „nohup“ an ein Terminal umleiten, wird die Ausgabe an die Datei „nohup.out“ im aktuellen Verzeichnis angehängt.
Wenn die Datei nohup.out im aktuellen Verzeichnis nicht beschreibbar ist, wird die Ausgabe in die Datei $HOME/nohup.out umgeleitet.
Wenn keine Datei zum Anhängen erstellt oder geöffnet werden kann, kann der durch den Befehlsparameter angegebene Befehl nicht aufgerufen werden.
Wenn es sich bei der Standardfehlerausgabe um ein Terminal handelt, wird die gesamte Ausgabe des angegebenen Befehls, die an die Standardfehlerausgabe geschrieben wird, an denselben Dateideskriptor wie die Standardausgabe umgeleitet.

Einfaches Beispiel:

nohup-Befehl &

Angeben von Ausgabeinstanzen

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

Andere verwandte Befehle
Strg + Z #Sie können einen im Vordergrund ausgeführten Befehl in den Hintergrund stellen und in einen angehaltenen Zustand versetzen.
fg #Hintergrundaufgaben auf Vordergrundausführung umschalten
bg #Ändern Sie einen im Hintergrund angehaltenen Befehl, damit seine Ausführung im Hintergrund fortgesetzt wird. Wenn im Hintergrund mehrere Befehle laufen, können Sie mit bg %jobnumber den ausgewählten Befehl aufrufen.
jobs #Überprüfen Sie den Status der Hintergrundausführung. Mit der Option jobs -l können Sie die PID aller Aufgaben anzeigen.
ps -ef | grep-Befehl oder ps aux | grep-Befehl #Prozess anzeigen
kill -9 process id #töte den entsprechenden Prozess,

Eine erweiterte Verwendung ist wie folgt:

ps aux | grep-Befehl | grep -v grep | awk '{print $1}' | xargs kill -9 #Das bedeutet, die Prozess-ID direkt über den Befehl abzurufen und den Prozess direkt zu beenden.

2. Bildschirm

Zum Umschalten des Befehlszeilenterminals

a. Sitzungswiederherstellung: Solange der Bildschirm selbst nicht beendet wird, können die darin laufenden Sitzungen wiederhergestellt werden. Dies ist besonders nützlich für Benutzer, die sich remote anmelden - selbst wenn die Netzwerkverbindung verloren geht,
Benutzer verlieren außerdem nicht die Kontrolle über bereits geöffnete Befehlszeilen-Sitzungen. Melden Sie sich einfach erneut beim Host an und führen Sie screen -r aus, um die Sitzung fortzusetzen.
Wenn Sie die Anwendung vorübergehend verlassen, können Sie auch den Befehl „Detach“ ausführen, um den Bildschirm anzuhalten (in den Hintergrund zu wechseln) und gleichzeitig sicherzustellen, dass das darin enthaltene Programm normal ausgeführt wird.

b. Mehrere Fenster In der Bildschirmumgebung laufen alle Sitzungen unabhängig voneinander und haben ihre eigenen Nummern, Eingänge, Ausgänge und Fenster-Caches. Benutzer können mithilfe von Tastenkombinationen zwischen verschiedenen Fenstern wechseln.
Und Sie können die Ein- und Ausgabe jedes Fensters frei umleiten. Der Bildschirm implementiert grundlegende Textoperationen wie Kopieren und Einfügen und bietet auch Funktionen ähnlich wie Bildlaufleisten.
Sie können den Verlauf der Fensterbedingungen anzeigen. Darüber hinaus können Fenster partitioniert und benannt sowie die Aktivität von Hintergrundfenstern überwacht werden. Über den Sitzungsfreigabebildschirm können sich ein oder mehrere Benutzer mehrmals von verschiedenen Terminals aus bei einer Sitzung anmelden und alle Funktionen der Sitzung gemeinsam nutzen (beispielsweise können sie genau dieselbe Ausgabe sehen). Es bietet außerdem einen Mechanismus für Fensterzugriffsberechtigungen.
Das Fenster kann mit einem Passwort geschützt werden.

c. Installation des Bildschirms

yum install -y Bildschirm

Grundlegende Syntax
screen -AmRvx -[ls -wipe][-d <Jobname>][-h <Zeilenanzahl>][-r <Jobname>][-s ][-S <Jobname>]

Optionen
-A Passt die Größe aller Fenster an die Größe des aktuellen Terminals an.
-d <Jobname> Den angegebenen Bildschirmjob offline nehmen.
-h <Zeilenanzahl> gibt die Anzahl der Pufferzeilen für das Fenster an.
-m Erzwingt die Erstellung eines neuen Bildschirmjobs, auch wenn bereits einer ausgeführt wird.
-r <Jobname> Stellt den Offline-Bildschirmjob wieder her.
-R Versuchen Sie zuerst, Offline-Jobs wiederherzustellen. Wenn der Offline-Job nicht gefunden werden kann, wird ein neuer Bildschirm-Job erstellt.
-s gibt die Shell an, die beim Erstellen eines neuen Fensters ausgeführt werden soll.
-S <Jobname> gibt den Namen des Bildschirmjobs an.
-v Versionsinformationen anzeigen.
-x Stellt den zuvor offline gegangenen Bildschirmjob wieder her.
-ls oder --list zeigt alle aktuellen Bildschirmjobs an.
-wipe prüft alle aktuellen Bildschirmaufträge und löscht diejenigen, die nicht mehr verwendbar sind.

Allgemeine Bildschirmparameter
screen -S IhrName -> erstellt eine neue Sitzung mit dem Namen IhrName
screen -ls -> Alle aktuellen Sitzungen auflisten
screen -r yourname -> Zurück zur yourname-Sitzung
screen -d IhrName -> Sitzung remote trennen
screen -d -r yourname -> Beenden Sie die aktuelle Sitzung und kehren Sie zur yourname-Sitzung zurück

In jeder Bildschirmsitzung beginnen alle Befehle mit Strg+A (Strg + A).

Strg + a ? -> Alle Tastenbelegungsinformationen anzeigen
Strg + ac -> Erstellt ein neues Fenster mit einer Shell und wechselt dorthin
Strg + an -> Weiter, zum nächsten Fenster wechseln
Strg + ap -> Zurück, zum vorherigen Fenster wechseln
Strg + a 0..9 -> zum Fenster 0..9 wechseln
Strg+a [Leertaste] -> Nacheinander von Fenster 0 zu Fenster 9 wechseln
Strg + a Strg + a -> Zwischen den beiden zuletzt verwendeten Fenstern wechseln
Strg + ax -> Sperren Sie das aktuelle Fenster und entsperren Sie es mit dem Benutzerkennwort
Strg + Anzeige -> Trennen, die aktuelle Sitzung vorübergehend verlassen, die aktuelle Bildschirmsitzung (die mehrere Fenster enthalten kann) zur Ausführung in den Hintergrund versetzen und in den Zustand vor dem Aufrufen des Bildschirms zurückkehren. Zu diesem Zeitpunkt wird in der Bildschirmsitzung der in jedem Fenster (ob Vordergrund/Hintergrund) ausgeführte Prozess weiterhin ausgeführt, und selbst das Abmelden hat keine Auswirkungen darauf.
Strg + Az -> aktuelle Sitzung in den Hintergrund stellen und mit dem fg-Befehl der Shell zurückkehren.
Strg + aw -> Alle Fenster anzeigen
Strg + at -> Zeit, Anzeige der aktuellen Uhrzeit und Systemauslastung
Strg + ak -> Fenster beenden, Schließen des aktuellen Fensters erzwingen
Strg + a -> Kopiermodus aktivieren. Im Kopiermodus können Sie zurückblättern, suchen und kopieren, genau wie mit vi
Cb Zurück, Bild auf
Siehe Vorwärts, Bild ab
H (Großbuchstabe) Hoch, bewegen Sie den Cursor in die obere linke Ecke
L Niedrig, bewegen Sie den Cursor in die untere linke Ecke
0 Zum Zeilenanfang gehen
$ Zeilenende
w ein Wort vorwärts, in Worteinheiten vorwärts gehen
b ein Wort zurück, ein Wort zurückgehen
Durch das erste Drücken der Leertaste wird der Startpunkt des Bereichs markiert, durch das zweite Drücken der Endpunkt.
Esc beendet den Kopiermodus
Strg + a ] -> Einfügen, fügt den gerade ausgewählten Inhalt im Kopiermodus ein

Bedienungsbeispiele finden Sie unter: https://wangchujiang.com/linux-command/c/screen.html

3. Daemonize-Tool

##Installieren Sie git clone git://github.com/bmc/daemonize.git
sh konfigurieren && make && sudo make install

-a #In Ausgabedatei einbinden, anstatt den Standardwert zu löschen. Gilt nur, wenn -e und/oder -o angegeben ist.
-e # Leitet die Ausgabe des Standardfehlers in die angegebene Datei um und ersetzt dabei /dev/null
-o #Leitet den Ausgabestandard zur angegebenen Datei um und ersetzt dabei /dev/null
-E Name=Wert #Umgebungsvariablen zum Hintergrundprogramm hinzufügen. Dieser Parametertyp muss das Format Name=Wert aufweisen. Parameter können mehrfach gesetzt werden.
-c Verzeichnis #Passen Sie das Verzeichnis an, bevor Sie den Befehl ausführen.
-p pidfile #Passen Sie Ihren eigenen PID-Speicherort an.
-l Sperrdatei #Diese Datei wird überprüft, wenn eine einzelne Instanz gestartet wird.
-u Benutzer #Passen Sie an, als wer das Programm ausgeführt wird.

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:
  • So installieren Sie Redis unter Linux, führen es im Hintergrund aus und richten das System für den automatischen Start ein
  • So zeigen Sie im Hintergrund laufende Programme in Linux an und schließen sie
  • Linux nohup, um Programme im Hintergrund auszuführen und anzuzeigen (nohup und &)
  • So starten Sie ein JAR-Paket und führen es unter Linux im Hintergrund aus
  • So zeigen Sie laufende Hintergrundprogramme in Linux an und beenden sie
  • Eine kurze Analyse der Beispiele und Unterschiede bei der Verwendung von nohup und screen zum Ausführen von Hintergrundaufgaben in Linux
  • Mehrere Möglichkeiten, Python-Programme im Linux-Hintergrund auszuführen
  • So führen Sie Springboot im Hintergrund von Linux aus
  • Linux-Hintergrund, in dem die Befehlsmethode „Node Service“ ausgeführt wird
  • Lösen Sie das Problem der im Hintergrund laufenden Python-Nohup-Linux-Ausgabe
  • Zusammenfassung der Methoden zum zuverlässigen Ausführen von Prozessen im Hintergrund unter Linux
  • Detaillierte Erläuterung des Linux-Hintergrundbetriebs und -Herunterfahrens, Anzeige von Hintergrundaufgaben
  • So führen Sie Linux-Befehle im Hintergrund aus

<<:  MySQL-Transaktions-Tutorial Yii2.0 Händler-Auszahlungsfunktion

>>:  Beispiel für die Implementierung einer Ankerpositionierungsfunktion beim WeChat-Applet

Artikel empfehlen

Hinweise zur Verwendung des Blockquote-Tags

<br />Semantisierung lässt sich nicht mit we...

Block- und Zeilenelemente, Sonderzeichen und Verschachtelungsregeln in HTML

Wenn wir die Verschachtelungsregeln grundlegender...

Beispielcode zur Installation von Jenkins mit Docker

Zwei Probleme, die bei der Installation von Docke...

Standardmäßige Stilanordnung für HTML-Tags

html, address,blockquote,body, dd, div,dl, dt, fie...

Auszeichnungssprache - Titel

Klicken Sie hier, um zum Abschnitt „HTML-Tutorial“...

Konvertieren von XHTML-CSS-Seiten in Druckerseiten

In der Vergangenheit bedeutete das Erstellen eine...

Vue-Routing zum Implementieren der Login-Abfangung

Inhaltsverzeichnis 1. Übersicht 2. Routing Naviga...

Welchen MySQL-Eindeutigen Index oder Normalen Index soll ich wählen?

Stellen Sie sich ein Szenario vor, in dem beim En...

Detaillierte Erläuterung der JavaScript-Implementierung der Hash-Tabelle

Inhaltsverzeichnis 1. Hash-Tabellenprinzip 2. Das...

Detaillierte Erklärung der Gründe, warum MySQL-Verbindungen hängen bleiben

Inhaltsverzeichnis 1. Hintergrund Architektur Pro...