- 1. Siehe Liste der Prozesse mit dem Befehl ps in Linux
- 2. Starten Sie einen Hintergrundprozess oder Befehl unter Linux mit bg unter Linux
- 3. Speichern Sie laufende Linux-Prozesse nach dem Beenden des Terminals in Linux
- 4. Speichern Sie laufende Linux-Prozesse nach dem Beenden des Terminals in Linux
- 5. Verknüpfung eines Linux-Prozesses im Terminal aufheben
- 6. Verwenden Sie Hintergrundprozesse mit Screen unter Linux
- 7. Stoppen oder beenden Sie einen angehaltenen oder Hintergrundprozess unter Linux
- 8. Stoppen Sie einen Prozess oder nehmen Sie einen Prozess in den Hintergrund
Die Ausführung von Prozessen ist in jedem verwendeten Betriebssystem von entscheidender Bedeutung, da sie sicherstellen, dass sowohl die Anwendungen als auch andere Elemente des Betriebssystems sowohl in der Kompatibilität als auch in der Ausführung ihrer Funktionen korrekt agieren können.
Jedes Betriebssystem kann Prozesse anders handhaben, aber bei Linux sind Prozesse in der Regel einem Terminal zugeordnet. Dies bedeutet, dass es geöffnet sein muss, damit der Prozess normal funktionieren kann, aber diese Aktion kann zu Situationen führen wie:
- Das geöffnete Terminal kann viele Ausgabedaten oder Fehler-/Diagnosemeldungen enthalten, was es schwierig macht, die Daten nicht nur zu lesen, sondern auch zu verwalten.
- Wenn wir das Terminal schließen, endet der Prozess zusammen mit seinen sekundären Prozessen direkt und wirkt sich direkt auf die auszuführende Aufgabe aus.
In dieser Art von Szenario ist es wichtig, die notwendigen Prozesse im Hintergrund auszuführen, ein Hintergrundprozess ist der Prozess, der versteckt ausgeführt wird und für dessen Betrieb kein Eingreifen des Benutzers erforderlich ist, obwohl Wenn das Terminal geschlossen ist, wird der Prozess seine Aufgabe weiter ausführen. Hintergrundprozesse gelten für Aufgaben, die Zeit in Anspruch nehmen können, wie z. B. Skripte, Herunterladen von Dateien und andere, bei denen wir nicht warten können, bis die Aktion abgeschlossen ist, ohne etwas zu tun.
Unter Linux können wir Prozesse im Vordergrund oder im Hintergrund ausführen. Ein Programm im Vordergrund, wenn es im Terminal ausgeführt wird, können wir keinen anderen Befehl ausführen, bis der Prozess beendet ist, aber es kann im Hintergrund oder Hintergrund ausgeführt werden.
Ein Programm, das nach dem Start im Hintergrund läuft, verwendet das Terminal vom Zeitpunkt seiner Ausführung bis zum Ende nicht. Um eine Software oder einen Befehl im Hintergrund vom Terminal aus auszuführen, fügen wir hinzu. Wenn wir am Ende des auszuführenden Befehls oder Skripts ein kaufmännisches Und (&) hinzufügen, wird es vom Betriebssystem im Hintergrund ausgeführt. Beispiel:
Nano- &Solvetic erklärt, wie wir Hintergrundprozesse unter Linux sehen und ausführen können.
1. Siehe Liste der Prozesse mit dem Befehl ps in Linux
Mit dem Befehl ps Befehl können wir den Status eines Prozesses kennen. Ps ist Prozessstatus oder Prozessstatus. Der Befehl ps listet die Prozesse nicht auf und gibt einige PID-, TTY-, TIME- und CMD-Spalten an.
PID (Prozessnummer)Jeder Prozess erhält eine eindeutige Identifikationsnummer, die vom Linux-Kernel vergeben wird.
TTYdas dem Prozess zugeordnete Terminal ist, kann es sich auch um ein anderes Eingabegerät handeln.
ZEITDie Zeit, die der Prozess ausgeführt wurde.
CMDEs ist der Name des ausgeführten Befehls, bash ist der Shell-Prozess.
Mit dem Befehl ps -A werden uns beispielsweise alle laufenden Prozesse angezeigt.
2. Starten Sie einen Hintergrundprozess oder Befehl unter Linux mit bg unter Linux
Der Befehl bg wurde als Jobsteuerungsbefehl entwickelt, der angehaltene Jobs wieder aufnimmt, aber im Hintergrund ausführt.
Schritt 1
Die grundlegende Syntax dieses Befehls lautet wie folgt:
bg [Arbeit]Schritt 2
Falls ein Prozess bereits läuft, müssen wir die folgenden Tasten drücken, um ihn zu stoppen und dann den bg-Befehl eingeben, um seine Ausführung im Hintergrund als Job fortzusetzen. Für dieses Beispiel verwenden wir die folgenden Zeilen:
Strg + Z
tar -czf home.tar.gz. (laufender Prozess, der mit Strg + Z gestoppt wird) bg (Ausführung des Befehls im Hintergrund) jobs (Visualisierung der ausgeführten Jobs)
Schritt 3
Wir können sehen, dass der Prozess noch läuft, aber jetzt im Hintergrund. Es wird auch möglich sein, einen Prozess direkt im Hintergrund auszuführen, indem Sie das kaufmännische Und am Ende eingeben:
tar -czf home.tar.gz. & Arbeitsplätze
3. Speichern Sie laufende Linux-Prozesse nach dem Beenden des Terminals in Linux
Dies ist ein wesentlicher Punkt, da, wie bereits erwähnt, im Normalmodus beim Schließen des Terminals alle aktiven Prozesse beendet werden, so dass diese auch bei geschlossenem Terminal weiterlaufen können.
Zu diesem Zweck können wir den Befehl disown verwenden, der verwendet wird, nachdem ein Prozess gestartet wurde und in den Hintergrund gestellt wurde. Der Befehl disown ist ein Shell-Job, dessen Aufgabe es ist, die Jobs aus der aktiven Liste der aktiven Shell zu entfernen.
Schritt 1
Bei der Ausführung von disown wird der Job beim Schließen des Terminals nicht abstürzen oder ein SIGHUP an einen untergeordneten Job senden. Seine grundlegende Syntax ist:
JobID verleugnenSchritt 2
Für seinen Betrieb werden wir Folgendes ausführen:
sudo rsync Templates / * / var / www / html / files / & (Befehl zum Ausführen) Jobs (aktive Jobs) disown -h% 1 (Befehl, den Prozess oder Befehl nicht zu schließen) Jobs (Anzeige von Jobs)
NotizFalls mehr als ein Prozess oder Befehl ausgeführt wird, können wir sehen, dass jeder von ihnen eine Identifikations-ID erhält, diese muss mit Disown eingegeben werden, um anzugeben, welcher Prozess weiter ausgeführt wird.
Schritt 3
Die Optionen für die Verwendung mit Disown sind:
-zuEntfernt alle Jobs, wenn jobID nicht angegeben wird.
-hMarkiert jede Job-ID, damit kein SIGHUP an den Job gesendet wird, wenn die Shell ein SIGHUP empfängt.
-RLöscht nur laufende Jobs.
4. Speichern Sie laufende Linux-Prozesse nach dem Beenden des Terminals in Linux
Die grundlegende Aufgabe des nohup-Befehls besteht darin, zu verhindern, dass der Befehl beim Abmelden oder Beenden der Shell automatisch abgebrochen wird. Bei Verwendung des Befehls nohup (no hangup) wird das Hangup-Signal (HUP), das an einen Prozess gesendet wird, um ihm mitzuteilen, dass sich der Benutzer abgemeldet hat, von nohup abgefangen, damit der Prozess in Sekundenschnelle weiterlaufen kann.
Schritt 1
Die Verwendungssyntax lautet wie folgt:
nohup-Befehl [Befehl-Argument …]Schritt 2
Für diesen Fall verwenden wir das folgende Beispiel. Wenn die Standardeingabe ein Terminal ist, leitet nohup sie von /dev/null um. Daher ist eine Terminaleingabe nicht möglich, wenn ein Befehl mit nohup ausgeführt wird. Falls die Standardausgabe ein Terminal ist, wird die Befehlsausgabe der Datei nohup.out oder $ HOME / nohup.out hinzugefügt. Wenn der Standardfehler ein Terminal ist, wird er zur Standardausgabe umgeleitet. Um die Ausgabe in einer Datei zu speichern, müssen wir "nohup command> file" verwenden.
nohup tar -czf iso.tar.gz Vorlagen / * & Jobs
5. Verknüpfung eines Linux-Prozesses im Terminal aufheben
Schritt 1
Wenn das Ziel darin besteht, einen Prozess vollständig vom Terminal zu trennen, sollten wir die folgende Syntax verwenden:
app / dev / null &Schritt 2
Zum Beispiel:
firefox / dev / null &
6. Verwenden Sie Hintergrundprozesse mit Screen unter Linux
Wenn ein Befehl im Hintergrund mit den Optionen nohup und &) verwendet wird, wird er auch nach dem Schließen der Sitzung ausgeführt. Das Problem besteht darin, dass wir beim erneuten Verbinden mit derselben Sitzung den aktiven Job nicht sehen Hintergrund, um dies zu korrigieren, gibt es den Bildschirmbefehl.
screen ist ein Vollbild-Fenstermanager, der ein physisches Terminal zwischen mehreren Prozessen verwaltet, wobei normalerweise die Shells interaktiv sind. Jedes virtuelle Terminal bietet die Funktionen eines DEC VT100-Terminals und zusätzlich mehrere Steuerungsfunktionen der Standards ISO 6429 (ECMA 48, ANSI X3.64) und ISO 2022, die es extrem dynamisch machen.
Wenn wir screen ausführen, wird ein einzelnes Fenster mit einer Shell oder dem angegebenen Befehl erstellt und dann umgangen, um das Programm normal verwenden zu können.
Schritt 1
Um screen in Linux zu installieren, führen wir Folgendes aus. Dort geben wir den Buchstaben S ein, um den Download und die Installation zu bestätigen.
sudo apt Installationsbildschirm
Schritt 2
Nach der Installation führen wir den Befehl "screen" aus und sehen Folgendes:
Schritt 3
Dort drücken wir die Eingabetaste, um zum neuen Fenster weitergeleitet zu werden, in dem wir den im Hintergrund zu verwendenden Prozess oder Befehl ausführen:
sudo tar czf temp.tar.gz / tmp &
Schritt 4
Wir werden in der Lage sein, die aktiven Fenster mit zu visualisieren. Um die Bildschirmsitzung zu beenden, können wir die Tasten verwenden
Strg + a + d
Strg + alt + d
Bildschirm -ls
7. Stoppen oder beenden Sie einen angehaltenen oder Hintergrundprozess unter Linux
Für diese Aktion, die darin besteht, die Ausführung des Prozesses im Hintergrund zu beenden, können wir den Befehl "kill" verwenden und anstelle der PID die Jobkennung angeben, zum Beispiel:
Jobs (aktuelle Jobs auflisten) kill% 2 (Prozess beenden oder beenden wird als 2 identifiziert)
8. Stoppen Sie einen Prozess oder nehmen Sie einen Prozess in den Hintergrund
Manche Programme brauchen lange, bis sie fertig sind, und sie machen in der Zwischenzeit nichts Wichtiges. Das Kompilieren von Programmen gehört ebenso dazu wie das Komprimieren einer großen Datei. Es macht keinen Sinn, den Computer nicht mehr zu verwenden, während diese Prozesse abgeschlossen sind und Ressourcen verbrauchen. In diesen Fällen ist es besser, sie im Hintergrund auszuführen, damit der Computer in der Lage ist, ein anderes Programm auszuführen.
Die Prozesse können ausgesetzt werden. Ein angehaltener Prozess ist ein Prozess, der derzeit nicht ausgeführt wird, aber vorübergehend gestoppt wird. Nachdem Sie eine Aufgabe angehalten haben, können Sie die Aufgabe nach Bedarf im Vordergrund oder als Zweite fortsetzen. Das Fortsetzen einer angehaltenen Aufgabe ändert den Status der Aufgabe überhaupt nicht, da sie dort weiter ausgeführt wird, wo sie aufgehört hat.
Schritt 1
Um einen Prozess zu unterbrechen, wird folgende Kombination verwendet, beim Drücken dieser Kombination stirbt der Prozess und alle Ressourcen werden freigegeben.
Strg + C
Schritt 2
Versuchen wir, einen sich wiederholenden Befehl in den Hintergrund zu senden. Der yes-Befehl wird verwendet, um ein Skript zu testen, das viele Bestätigungen erfordert. Es wiederholt "und" mit dem, was davor geschrieben wird, endlos, bis das Skript gestoppt wird oder der Benutzer es stoppt:
- Wenn wir im Terminal "ja" eingeben, sehen wir eine endlose Liste von "und".
- Wenn wir ja hallo in das Terminal eingeben und wir eine endlose Liste von hallo sehen
Schritt 3
Um eine Datei zu löschen, ohne eine Taste zu drücken, wenn sie zur Bestätigung aufgefordert wird, können wir verwenden
ja | rm -i * .txtSchritt 4
Um einen Prozess in den Hintergrund zu senden, rufen wir ihn über die Befehlszeile auf, gefolgt von & create infinite null devices
ja> / dev / null &Schritt 5
Dies zeigt uns die Aufgabennummer und die PID [1] 4106. Wenn wir jetzt den Befehl jobs verwenden, sehen wir
[1] + Ausführen ja> / dev / null &Schritt 6
um es in den Vordergrund zu bringen, schreiben wir fg 1 und beenden den Prozess kill 4106, der die pid ist.
FG 1 Töte 4106Mit jeder der genannten Optionen wird es möglich sein, die Hintergrundprozesse in Linux wesentlich zentraler zu verwalten und so die erforderlichen Aufgaben auch bei geschlossener Sitzung ausführen zu können.