GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So arbeiten Sie mit Vordergrund- und Hintergrundprozessen unter Linux

Ein wichtiges Konzept, das Sie bei der Arbeit mit dem Linux-Prozess verstehen sollten, ist der Vordergrund und Hintergrund Prozess und wie man sie kontrolliert. Wenn Sie unter Linux Programme ausführen, wird ein Prozess mit einer eindeutigen ID erstellt (PID ) und standardmäßig wird der Prozess im Vordergrund ausgeführt .

Nehmen wir einen einfachen Curl-Befehl – Wenn Sie eine Anforderung zum Herunterladen einer ZIP-Datei über das Internet senden, curl wird als Vordergrund ausgeführt Prozess und alle Ausgaben werden im Terminal angezeigt.

Es gibt zwei wichtige Tastenkombinationen, die Sie verstehen müssen, bevor Sie mit dem Hintergrund arbeiten und Vordergrund verarbeiten.

  • STRG+Z – Dieser Tastendruck stoppt den laufenden Prozess.
  • STRG+C – Dieser Tastendruck beendet den laufenden Prozess und gibt Speicher im RAM frei.

Linux-Vordergrundprozess

Ein Prozess wird beim Starten vom Terminal standardmäßig im Vordergrund ausgeführt Prozess. Der Vordergrund Prozess erlaubt Ihnen nicht, das Terminal zu verwenden, bis der Prozess abgeschlossen ist. Wenn Sie in diesem Fall wieder Zugriff auf Ihr Terminal benötigen, müssen Sie ein neues Terminalfenster öffnen oder den laufenden Prozess stoppen oder beenden.

Es ist auch wichtig zu beachten, dass jeder Prozess, der über das Terminal erstellt wird, an die Terminalsitzung angehängt wird und der Prozess beendet wird, sobald das Terminal geschlossen wird. Dies liegt daran, dass bash der übergeordnete Prozess ist und jeder Befehl, den Sie im Terminal ausführen, der untergeordnete Prozess der bash ist. Wenn Sie also den übergeordneten Prozess des Terminals schließen, (bash) beendet automatisch alle untergeordneten Prozesse und seinen eigenen.

Unten ist ein Beispiel für den Vordergrundprozess. Dies ist nur ein einfacher Sleep-Befehl Dadurch wird die Eingabeaufforderung erst nach Abschluss an den Benutzer zurückgegeben.

$ sleep 10000

Jetzt habe ich nur wenige Möglichkeiten, die Kontrolle über die Terminal-Eingabeaufforderung zurückzugewinnen. Entweder muss ich den Vorgang abbrechen oder stoppen oder einen neuen Terminal-Tab öffnen. Wenn Sie einen laufenden Prozess stoppen, indem Sie (STRG+Z) drücken Sie erhalten eine Ausgabe wie im folgenden Bild gezeigt.

Um die Liste der Jobs im laufenden oder angehaltenen Zustand zu erhalten, können Sie den folgenden Befehl ausführen.

$ jobs -l

Aus dem obigen Bild können Sie den jobs-Befehl sehen gibt Ihnen die ID des Prozesses , welchen Befehl Sie gesendet haben, wie ist der Status davon. Sie erhalten auch eine Job-ID für jeden Prozess, den Sie übermitteln ([1], [2] [3] usw.).

Führen Sie den folgenden Befehl aus, um einen angehaltenen Job zu starten oder den Hintergrundjob in den Vordergrund zu bringen.

$ fg %4     

Wobei %4 bezeichnet die Job-ID, die Sie mit dem Befehl „jobs -l“ erhalten können.

Linux-Hintergrundprozess

Der Hintergrundprozess führt Ihren Prozess im Hintergrund aus und übernimmt nicht die Kontrolle über Ihre Terminal-Eingabeaufforderung. Sie können eine Sitzung starten und Ihr Terminal frei verwenden. Um einen Befehl als Hintergrundprozess zu übermitteln, müssen Sie & hinzufügen Symbol am Ende des Befehls.

$ sleep 50000 &

Führen Sie den Befehl jobs aus, um die Liste der Jobs abzurufen.

$ jobs -l

Aus dem unteren Bild können Sie Job-ID [5] sehen dem Job zugeordnet ist und & Das Symbol teilt mit, dass es übermittelt wurde und als Hintergrundjob ausgeführt wird.

Sie können jeden angehaltenen Job direkt im Hintergrund starten, indem Sie den folgenden Befehl ausführen.

$ bg %2 

Wobei %2 bezeichnet die Job-ID, die Sie aus der Datei „jobs -l“ erhalten können ”-Befehl.

Das war es für diesen Artikel. Wenn Sie Feedback oder Vorschläge haben, hinterlassen Sie diese im Kommentarfeld.


Linux
  1. So machen Sie Ihr Linux-Terminal und Ihre Shell weihnachtlich

  2. Flatpak unter Linux:Was es ist und wie man Apps damit installiert

  3. So finden und töten Sie den Zombie-Prozess in Linux

  4. Ausführen von Linux-Befehlen im Hintergrund und Vordergrund

  5. Linux-Prozess im Hintergrund - In Jobs gestoppt?

So unterbrechen Sie einen Prozess und setzen ihn später in Linux fort

So finden und beenden Sie einen Prozess mit einem Linux-Terminal

Wie man mit Hardlinks und Softlinks unter Linux arbeitet

So installieren und verwenden Sie das Terminator-Terminal unter Linux

So senden Sie Prozesse unter Linux an den Hintergrund

So verfolgen und verfolgen Sie einen Linux-Prozess