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.