Die Ausführung von Prozessen ist in jedem verwendeten Betriebssystem von entscheidender Bedeutung, da sie sicherstellen, dass sowohl Anwendungen als auch andere Elemente des Betriebssystems in Bezug auf Kompatibilität und Ausführung ihrer Funktionen ordnungsgemäß funktionieren.
Jedes Betriebssystem kann unterschiedlich mit Prozessen umgehen , aber im Falle von Linux werden Prozesse in der Regel einem Terminal zugeordnet. Dies bedeutet, dass es geöffnet sein muss, damit der Prozess normal funktioniert. Diese Aktion kann jedoch zu folgenden Situationen führen:
- Das offene 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, wirkt sich der Prozess zusammen mit seinen sekundären Prozessen direkt auf die auszuführende Aufgabe aus.
In dieser Art von Szenario ist es wichtig, die erforderlichen Prozesse im Hintergrund auszuführen. Ein Prozess im Hintergrund ist der Prozess, der auf verborgene Weise ausgeführt wird und für dessen Betrieb der Benutzer nicht eingreifen muss , obwohl das Terminal geschlossen ist Prinzipal wird der Prozess weiterhin seine Aufgabe ausführen. Die Hintergrundprozesse gelten für Aufgaben, die einige Zeit in Anspruch nehmen können, z. B. Skripts, Dateien herunterladen 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 (Vordergrund) oder im Hintergrund (Hintergrund) ausführen. Wenn ein Programm im Terminal im Vordergrund ausgeführt wird, können wir keinen anderen Befehl ausführen, bis der Vorgang abgeschlossen ist. Dies kann jedoch im Hintergrund oder im Hintergrund erfolgen.
Ein Programm, das nach dem Start im Hintergrund ausgeführt wird, verwendet das Terminal nicht, da es bis zu seinem Ende ausgeführt wurde. So führen Sie eine Software oder einen Befehl über das Terminal im Hintergrund aus: Hinzufügen Wenn Sie am Ende des auszuführenden Befehls oder Skripts ein kaufmännisches Und (&) hinzufügen, wird dieses vom Betriebssystem im Hintergrund ausgeführt. Beispiel:
Nano &
TechnoWikis erklärt, wie wir unter Linux Prozesse im Hintergrund sehen und ausführen können.
1. Siehe Liste der Prozesse mit dem Befehl ps unter Linux
Mit dem Befehl ps können wir den Status eines Prozesses ermitteln. Ps ist der Prozessstatus oder der Prozessstatus. Der Befehl ps listet die Prozesse nicht auf und gibt einige PID-, TTY-, TIME- und CMD-Spalten an.
Mit dem Befehl ps -A werden beispielsweise alle laufenden Prozesse angezeigt.
2. Starten Sie einen Prozess oder Befehl im Hintergrund unter Linux mit bg unter Linux
Der Befehl bg wurde als Jobsteuerungsbefehl entwickelt, der angehaltene Jobs wieder aufnimmt, sie jedoch im Hintergrund ausführt.
Die grundlegende Syntax dieses Befehls lautet wie folgt:
bg [Arbeit]
Wenn ein Prozess bereits ausgeführt wird, müssen Sie die folgenden Tasten drücken, um ihn zu stoppen, und dann den Befehl bg eingeben, um die Ausführung im Hintergrund als Job fortzusetzen. Für dieses Beispiel verwenden wir die folgenden Zeilen:
+ Z Strg + Z
tar -czf home.tar.gz. (laufender Prozess, der mit Strg + Z abgebrochen wird) bg (Ausführung des Befehls im Hintergrund) Jobs (Visualisierung der geleisteten Arbeit)
Wir können sehen, dass der Prozess noch läuft, aber jetzt im Hintergrund. Sie können einen Prozess auch direkt im Hintergrund ausführen, indem Sie das & -Zeichen am Ende eingeben:
tar -czf home.tar.gz. & Jobs
3. Speichern Sie die laufenden Linux-Prozesse, nachdem Sie das Terminal unter Linux verlassen haben
Dies ist ein wesentlicher Punkt, da, wie bereits erwähnt, im normalen Modus beim Schließen des Terminals alle aktiven Prozesse beendet werden, sodass sie auch beim Schließen des Terminals weiter ausgeführt werden können.
Zu diesem Zweck können wir den Befehl disown verwenden, der verwendet wird, nachdem ein Prozess gestartet und in den Hintergrund gestellt wurde. Der Befehl disown ist ein Shell-Job, dessen Aufgabe es ist, Jobs aus der aktiven aktiven Shell-Liste zu entfernen .
Bei der Ausführung von Disown wird der Job beim Schließen des Terminals nicht blockiert und es wird kein SIGHUP an sekundäre Work gesendet. Die grundlegende Syntax lautet:
disown jobID
Für seinen Betrieb werden wir Folgendes ausführen:
sudo rsync Templates / * / var / www / html / files / & (auszuführender Befehl) Jobs (aktive Jobs) disown -h% 1 (Befehl, den Prozess oder Befehl nicht zu schließen) Jobs (Visualisierung der Werke)
Die Optionen, die mit Disown verwendet werden können, sind:
4. Speichern Sie laufende Linux-Prozesse, nachdem Sie das Terminal unter Linux verlassen haben
Die grundlegende Aufgabe des Befehls nohup besteht darin, zu verhindern, dass der Befehl beim Abmelden oder beim Verlassen der Shell automatisch abgebrochen wird. Bei Verwendung des Befehls nohup (nicht Auflegen) wird das Suspendierungssignal (HUP), das an einen Prozess gesendet wird, um den Benutzer darüber zu informieren, dass die Verbindung getrennt wurde, von nohup abgefangen, damit der Prozess in Sekunden weiter ausgeführt werden kann. flach
Die Verwendungssyntax lautet wie folgt:
Befehl nohup [Befehlsargument ...]
In diesem Fall verwenden wir das folgende Beispiel. Wenn die Standardeingabe ein Terminal ist, leitet nohup es von / dev / null um. Daher ist die Terminaleingabe nicht möglich, wenn ein Befehl mit nohup ausgeführt wird. Wenn die Standardausgabe ein Terminal ist, wird die Ausgabe des Befehls zur 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 Sie “nohup command> file” verwenden.
nohup tar -czf iso.tar.gz Vorlagen / * & Arbeitsplätze
5. Lösen Sie die Verknüpfung eines Linux-Prozesses im Terminal
Wenn das Ziel darin besteht, einen Prozess vollständig vom Terminal zu trennen, müssen wir die folgende Syntax verwenden:
App </ dev / null &> / dev / null &
Zum Beispiel:
Firefox </ dev / null &> / dev / null &
6. Verwenden Sie Prozesse im Hintergrund mit Screen in 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 die aktive Arbeit nicht sehen, wenn wir uns wieder mit derselben Sitzung verbinden Um dies zu korrigieren, gibt es im Hintergrund den Befehl screen.
screen ist ein Vollbild-Fenstermanager, der ein physisches Terminal zwischen mehreren Prozessen verwaltet, wobei es sich normalerweise um interaktive Shells handelt. Jedes virtuelle Terminal bietet die Funktionen eines DEC VT100-Terminals und darüber hinaus mehrere Steuerfunktionen der ISO 6429-Standards (ECMA 48, ANSI X3.64) und ISO 2022, was es äußerst dynamisch macht.
Wenn wir screen ausführen, wird ein einzelnes Fenster mit einer Shell oder mit dem angegebenen Befehl erstellt und dann umgeleitet, um das Programm auf normale Weise verwenden zu können.
Um screen unter 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 install screen
Nach der Installation führen wir den Befehl “screen” aus und sehen folgendes:
Dort drücken wir die Eingabetaste, um in das neue Fenster umgeleitet zu werden, in dem wir den im Hintergrund zu verwendenden Prozess oder Befehl ausführen:
sudo tar czf temp.tar.gz / tmp &
Wir können die aktiven Fenster mit visualisieren. Zum Verlassen der Bildschirmsitzung können wir die Tasten verwenden
+ a + d Strg + a + d
+ alt + d Strg + Alt + D
Bildschirm -ls
7. Stoppen oder beenden Sie einen angehaltenen oder Hintergrundprozess unter Linux
Für diese Aktion, die die Ausführung des Prozesses im Hintergrund beenden soll, können wir den Befehl “kill” verwenden und anstelle der PID die Job-ID angeben, zum Beispiel:
Jobs (aktuelle Jobs auflisten) kill% 2 (töte oder beende den Prozess als 2)
8. Stoppen Sie einen Prozess oder übergeben Sie einen Prozess im Hintergrund
Einige Programme brauchen viel Zeit, bis sie fertig sind, und sie tun in der Zwischenzeit nichts Wichtiges. Das Kompilieren von Programmen ist eine dieser Aufgaben sowie das Komprimieren einer großen Datei. Es ist nicht sinnvoll, den Computer nicht mehr zu verwenden, während diese Prozesse enden und Ressourcen verbrauchen. In diesen Fällen ist es besser, sie im Hintergrund auszuführen, um den Computer in die Lage zu versetzen, ein anderes Programm auszuführen.
Die Prozesse können ausgesetzt werden. Ein angehaltener Prozess wird derzeit nicht ausgeführt, aber vorübergehend angehalten. Nachdem Sie eine Aufgabe angehalten haben, können Sie sie anweisen, nach Bedarf im Vordergrund oder in der Sekunde fortzufahren. Durch die Rückkehr zu einer angehaltenen Task wird der Status der Task nicht geändert, da sie dort weiter ausgeführt wird, wo sie angehalten wurde.
Um einen Prozess zu unterbrechen, wird die folgende Kombination verwendet: Wenn diese Kombination gedrückt wird, stirbt der Prozess und alle Ressourcen werden freigegeben.
+ C Strg + C
Versuchen wir, einen sich wiederholenden Befehl in den Hintergrund zu schicken. Der Befehl yes wird verwendet, um ein Skript zu testen, für das viele Bestätigungen erforderlich sind. Wiederholen Sie “y” mit dem, was unendlich geschrieben ist, bevor das Skript angehalten wird oder der Benutzer es anhält:
- Wenn wir “Ja” in das Terminal schreiben und eine endlose Liste von “und” sehen.
- Wenn wir ja Hallo in das Terminal schreiben und wir werden eine endlose Liste von Hallo sehen
Um eine Datei zu löschen, ohne eine Taste zu drücken, können wir nach Bestätigung fragen
ja | rm -i * .txt
Um einen Prozess in den Hintergrund zu schicken, rufen wir ihn von der Kommandozeile aus auf, gefolgt von & wir erstellen unendlich viele Nullgeräte
yes> / dev / null &
Dies zeigt uns die Aufgabennummer und die pid [1] 4106. Wenn wir jetzt den Befehl jobs verwenden, werden wir sehen
[1] + Ausführen von yes> / dev / null &
Um es in den Vordergrund zu bringen, schreiben wir fg 1 und beenden den Kill-Prozess 4106, bei dem es sich um die PID handelt.
Fg 1 Töte 4106
Mit einigen der angegebenen Optionen ist es möglich, die Hintergrundprozesse unter Linux wesentlich zentraler zu verwalten und so die erforderlichen Aufgaben auch dann auszuführen, wenn die Sitzung geschlossen ist.