Bringen von Linux-Jobs in den Vordergrund

LinuxLinuxBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In Linux-Betriebssystemen ist Multitasking eine essentielle Fähigkeit, die es Benutzern ermöglicht, mehrere Prozesse gleichzeitig auszuführen. Ein leistungsstarkes Merkmal von Linux-Terminals ist die Jobkontrolle – die Fähigkeit, Prozesse zu verwalten, indem sie im Hintergrund ausgeführt werden und bei Bedarf in den Vordergrund gebracht werden.

Dieses Lab führt Sie in die Linux-Jobkontrolle ein, wobei der Schwerpunkt speziell auf dem Verfahren zum Vordergrundbringen von Hintergrundaufgaben liegt. Sie werden lernen, wie Sie Aufgaben im Hintergrund starten, laufende Jobs auflisten und bestimmte Aufgaben mit dem Befehl fg in den Vordergrund bringen. Diese Fähigkeiten sind wertvoll, um die Produktivität bei der Arbeit mit langlaufenden Operationen in einer Linux-Umgebung zu erhöhen.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/ProcessManagementandControlGroup(["Process Management and Control"]) linux(("Linux")) -.-> linux/VersionControlandTextEditorsGroup(["Version Control and Text Editors"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux/BasicFileOperationsGroup -.-> linux/chmod("Permission Modifying") linux/FileandDirectoryManagementGroup -.-> linux/cd("Directory Changing") linux/ProcessManagementandControlGroup -.-> linux/jobs("Job Managing") linux/ProcessManagementandControlGroup -.-> linux/bg_running("Background Running") linux/ProcessManagementandControlGroup -.-> linux/fg("Job Foregrounding") linux/ProcessManagementandControlGroup -.-> linux/bg_process("Background Management") linux/VersionControlandTextEditorsGroup -.-> linux/nano("Simple Text Editing") subgraph Lab Skills linux/chmod -.-> lab-271281{{"Bringen von Linux-Jobs in den Vordergrund"}} linux/cd -.-> lab-271281{{"Bringen von Linux-Jobs in den Vordergrund"}} linux/jobs -.-> lab-271281{{"Bringen von Linux-Jobs in den Vordergrund"}} linux/bg_running -.-> lab-271281{{"Bringen von Linux-Jobs in den Vordergrund"}} linux/fg -.-> lab-271281{{"Bringen von Linux-Jobs in den Vordergrund"}} linux/bg_process -.-> lab-271281{{"Bringen von Linux-Jobs in den Vordergrund"}} linux/nano -.-> lab-271281{{"Bringen von Linux-Jobs in den Vordergrund"}} end

Erstellen und Ausführen von Hintergrundaufgaben

In diesem Schritt lernen Sie, wie Sie ein Skript erstellen, das eine langlaufende Aufgabe simuliert, und es im Hintergrund ausführen.

Unterschied zwischen Vordergrund- und Hintergrundprozessen verstehen

In einem Linux-Terminal können Prozesse entweder im Vordergrund oder im Hintergrund ausgeführt werden:

  • Vordergrundprozess: Wenn ein Befehl im Vordergrund ausgeführt wird, belegt er Ihr Terminal, bis er abgeschlossen ist. Sie können keine anderen Befehle ausführen, bis er beendet ist.
  • Hintergrundprozess: Wenn ein Befehl im Hintergrund ausgeführt wird, läuft er "im Hintergrund", während Ihr Terminal für andere Aufgaben frei bleibt.

Beginnen wir damit, in das Projektverzeichnis zu navigieren:

cd ~/project

Jetzt erstellen wir ein einfaches Skript, das eine langlaufende Aufgabe simuliert. Wir verwenden es, um Hintergrund- und Vordergrundoperationen zu demonstrieren:

nano long_running_task.sh

Im nano-Editor geben Sie den folgenden Code ein:

#!/bin/bash
echo "Starting a long task..."
sleep 60 ## This will pause for 60 seconds
echo "Task completed."

Um die Datei zu speichern, drücken Sie Strg+O, gefolgt von Enter, und dann Strg+X, um nano zu verlassen.

Als Nächstes machen wir das Skript ausführbar mit dem folgenden Befehl:

chmod +x long_running_task.sh

Lassen Sie uns dieses Skript im Hintergrund ausführen, indem wir ein Ampersand (&) am Ende des Befehls hinzufügen:

./long_running_task.sh &

Sie sollten eine Ausgabe ähnlich der folgenden sehen:

[1] 1234
Starting a long task...

Die Zahl in eckigen Klammern [1] ist die Jobnummer, und die Zahl danach (in diesem Beispiel 1234) ist die Prozess-ID. Ihr Terminal ist jetzt frei, um andere Befehle einzugeben, während das Skript weiterhin im Hintergrund läuft.

Verwaltung mehrerer Hintergrundjobs

In diesem Schritt lernen Sie, wie Sie mehrere Hintergrundaufgaben starten und deren Status überprüfen.

Zunächst starten wir eine weitere Instanz unseres Skripts im Hintergrund:

./long_running_task.sh &

Sie sollten eine weitere Jobnummer und Prozess-ID sowie die Meldung "Starting a long task..." angezeigt bekommen.

Überprüfung von Hintergrundjobs

Um eine Liste aller im Hintergrund laufenden Jobs anzuzeigen, verwenden Sie den Befehl jobs:

jobs

Die Ausgabe sollte in etwa so aussehen:

[1]-  Running                 ./long_running_task.sh &
[2]+  Running                 ./long_running_task.sh &

Dies zeigt:

  • Jobnummern in eckigen Klammern [1] und [2]
  • Den Status jedes Jobs (Running)
  • Den ausgeführten Befehl
  • Das +-Symbol gibt den "aktuellen" Job an (der zuletzt gestartet oder verwendet wurde)
  • Das --Symbol gibt den Job an, der der aktuelle Job werden würde, wenn der aktuelle Job abgeschlossen wäre

Stellen wir einen Hintergrundjob an:

./long_running_task.sh &

Überprüfen wir die Jobs-Liste erneut:

jobs

Sie sollten jetzt laufende Jobs in der Liste sehen.

Jobs in den Vordergrund bringen

In diesem Schritt lernen Sie, wie Sie Hintergrundjobs mit dem Befehl fg in den Vordergrund bringen.

Verwendung des fg-Befehls

Der Befehl fg bringt einen Hintergrundjob in den Vordergrund und macht ihn zum aktiven Prozess in Ihrem Terminal. Wenn ein Job im Vordergrund ist, kann er Eingaben von der Tastatur empfangen, und seine Ausgabe wird direkt im Terminal angezeigt.

Um den neuesten Hintergrundjob (in der jobs-Ausgabe mit + markiert) in den Vordergrund zu bringen, geben Sie einfach ein:

fg

Sie sollten sehen, dass der Befehl im Vordergrund läuft, und Ihr Terminal wird belegt, bis der Befehl abgeschlossen ist. Die Ausgabe sieht wie folgt aus:

./long_running_task.sh

Und wenn die Aufgabe noch läuft, müssen Sie warten, bis sie abgeschlossen ist. Wenn sie beendet ist, sehen Sie:

Task completed.

Wenn Sie einen Vordergrundprozess vor seiner Beendigung unterbrechen müssen, drücken Sie Strg+C.

Stellen wir einen weiteren Hintergrundjob an:

./long_running_task.sh &

Jetzt überprüfen wir die Jobs-Liste:

jobs

Ein bestimmter Job in den Vordergrund bringen

In diesem Schritt lernen Sie, wie Sie einen bestimmten Hintergrundjob mithilfe seiner Jobnummer in den Vordergrund bringen.

Verwendung von fg mit Jobnummern

Wenn Sie mehrere Hintergrundjobs haben, können Sie einen bestimmten Job in den Vordergrund bringen, indem Sie seine Jobnummer mit dem Befehl fg angeben.

Zunächst stellen wir sicher, dass mehrere Jobs laufen. Starten Sie ein paar neue Hintergrundaufgaben:

./long_running_task.sh &
./long_running_task.sh &

Überprüfen Sie die Liste der Jobs und ihre Nummern:

jobs

Um einen bestimmten Job in den Vordergrund zu bringen, verwenden Sie das Format fg %jobnumber. Beispielsweise, um Job Nummer 1 in den Vordergrund zu bringen:

fg %1

Die Ausgabe zeigt den Befehl, der im Vordergrund läuft:

./long_running_task.sh

Warten Sie, bis die Aufgabe abgeschlossen ist, oder drücken Sie Strg+C, um sie zu unterbrechen.

Versuchen Sie nun, einen anderen Job in den Vordergrund zu bringen. Beispielsweise, wenn Sie einen Job mit der Nummer 2 haben:

fg %2

Diese Technik ist nützlich, wenn Sie zwischen mehreren Aufgaben wechseln müssen und einem bestimmten Prozess bei Bedarf Ihre volle Aufmerksamkeit schenken möchten.

Zusammenfassung

In diesem Lab haben Sie essentielle Fähigkeiten zur Verwaltung von Prozessen in einer Linux-Umgebung gelernt:

  1. Erstellen und Ausführen von Hintergrundaufgaben: Sie haben ein Skript erstellt, das einen langlaufenden Vorgang simuliert, und gelernt, wie Sie es im Hintergrund mit dem Symbol & ausführen.

  2. Verwalten mehrerer Hintergrundjobs: Sie haben gelernt, wie Sie mehrere Hintergrundaufgaben starten und ihren Status mit dem Befehl jobs überprüfen.

  3. Jobs in den Vordergrund bringen: Sie haben entdeckt, wie Sie den Befehl fg verwenden, um Hintergrundaufgaben in den Vordergrund zu bringen, entweder den neuesten Job oder einen bestimmten Job, indem Sie seine Jobnummer angeben.

Diese Job-Kontrolltechniken sind grundlegend für effizientes Multitasking in Linux. Sie ermöglichen es Ihnen:

  • Zeitaufwändige Prozesse auszuführen, ohne Ihr Terminal zu blockieren
  • Mehrere Vorgänge gleichzeitig zu überwachen
  • Bei Bedarf zwischen Aufgaben zu wechseln
  • Ihre Arbeitsabläufe effektiver zu verwalten

Wenn Sie weiterhin mit Linux-Systemen arbeiten, werden diese Befehle wertvolle Werkzeuge in Ihren täglichen Operationen sein, insbesondere wenn Sie mit Servern arbeiten, Skripte ausführen oder mehrere Prozesse verwalten.