Anzeigen und Ausführen von Prozessen im Hintergrund Linux

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.

PID (Nummer des Prozesses)
Jeder Prozess erhält eine eindeutige Identifikationsnummer, die vom Linux-Kernel vergeben wird.

TTY
Es ist das mit dem Prozess verbundene Terminal und kann auch ein anderes Eingabegerät sein.

ZEIT
Die Zeit, zu der der Prozess ausgeführt wurde.

CMD
Es ist der Name des Befehls, der ausgeführt wird, Bash ist der Prozess der Shell.

Mit dem Befehl ps -A werden beispielsweise alle laufenden Prozesse angezeigt.

See also  Unbequeme Dinge über Windows und seine Lösung

verarbeitet-second-plane-linux.png

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.

Schritt 1

Die grundlegende Syntax dieses Befehls lautet wie folgt:

 bg [Arbeit] 
Schritt 2

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) 

1-Starten-eines-Prozesses-oder-eines-Befehls-in-der-zweiten-Ebene-in-Linux-mit-bg.png

Schritt 3

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 

2-Starten-eines-Prozesses-oder-eines-Befehls-in-der-zweiten-Ebene-in-Linux-mit-bg.png

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 .

Schritt 1

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 
Schritt 2

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) 

3-How-to-Keep-the-Linux-Prozesse-in-Ausführung-nach-dem-Ende-des-Terminals.png

Hinweis
Wenn wir mehr als einen Prozess oder Befehl ausführen, können wir sehen, dass jeder von ihnen eine Identifikations-ID erhält. Diese muss mit Verweigerung eingegeben werden, um anzugeben, welcher Prozess in der Ausführung fortgesetzt wird.

Schritt 3

Die Optionen, die mit Disown verwendet werden können, sind:

-a
Löschen Sie alle Jobs, wenn die Job-ID nicht angegeben ist.

-h
Markieren Sie jede Job-ID, damit SIGHUP nicht an den Job gesendet wird, wenn die Shell ein SIGHUP empfängt.

-r
Löscht nur laufende Jobs.

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

Schritt 1

Die Verwendungssyntax lautet wie folgt:

 Befehl nohup [Befehlsargument ...] 
Schritt 2

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 

4-Use-of-Command-nohup.png

5. Lösen Sie die Verknüpfung eines Linux-Prozesses im Terminal

Schritt 1

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 & 
Schritt 2

Zum Beispiel:

 Firefox </ dev / null &> / dev / null & 

5-How-to-disassociate-a-Linux-in-the-Terminal-process.png

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.

See also  Anwenden von Farbe auf die Gimp-Leinwand

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.

Schritt 1

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 

6-Use-Prozesse-in-Sekunden-Ebene-mit-Screen.png

Schritt 2

Nach der Installation führen wir den Befehl “screen” aus und sehen folgendes:

7-Einmalig-installiert-das-Kommando-screen.png ausführen

Schritt 3

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 & 

8-Beenden-der-Sitzung-des-Bildschirms.png

Schritt 4

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 

9-exit-of-the-session-of-screen.png

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.

See also  Verbessern Sie die Suchinformationen bei Google

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.

Schritt 1

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

Schritt 2

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
Schritt 3

Um eine Datei zu löschen, ohne eine Taste zu drücken, können wir nach Bestätigung fragen

 ja | rm -i * .txt 
Schritt 4

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 & 
Schritt 5

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 & 
Schritt 6

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.

administrator

Leave a Reply

Your email address will not be published. Required fields are marked *