Zum Inhalt springen

AB 09 — Prozessverwaltung in Linux

Mein Fortschritt0/1 (0 %)

Aufgabe 1 – Prozesse anzeigen

Eines der am häufigsten verwendete Werkzeuge, um laufende Prozesse unter Linux zu betrachten, ist der Befehl ps. Es gibt zwar mehrere Tools zur Prozessanzeige (wie top, htop oder pstree), aber ps ist das Standardwerkzeug, um eine Momentaufnahme aller aktiven Prozesse in tabellarischer Form zu erhalten.

Der Befehl ps besitzt viele Optionen, mit denen sich die Ausgabe sehr detailliert anpassen lässt. In seiner gebräuchlichsten Form wird er jedoch so ausgeführt:

ps -aux

Dieser Befehl zeigt alle Prozesse des Systems an, unabhängig davon, welchem Benutzer sie gehören oder in welchem Terminal sie gestartet wurden.

Führe ps -aux aus und notiere folgende Informationen für mindestens drei verschiedene Prozesse:

PID (Process ID): Die eindeutige Kennung eines Prozesses.

USER: Der Benutzer, unter dem der Prozess läuft.

CPU %: Die aktuelle CPU-Auslastung des Prozesses.

In der Spalte STAT zeigt ps den sogenannten Prozessstatus an. Dieser Status beschreibt, in welchem Zustand sich ein Prozess aktuell befindet. Die häufigsten Codes sind:

R – Running: Der Prozess läuft gerade oder ist bereit zur Ausführung.

S – Sleeping: Der Prozess wartet auf ein Ereignis (Standardzustand der meisten Prozesse).

D – Uninterruptible Sleep: Warten auf Hardware (z. B. Festplattenzugriff).

T – Stopped: Der Prozess wurde angehalten (z. B. durch STRG+Z).

Z – Zombie: Der Prozess wurde beendet, aber der Eintrag im Prozessbaum existiert noch.

Oft erscheint auch ein zusätzlicher Buchstabe, z. B.:

  • – Der Prozess läuft im Vordergrund einer Terminal-Session.

l – Multithreaded-Prozess.

s – Ein Prozess, der selbst Kindprozesse erzeugt (Session Leader).

Diese Codes helfen dir, den Zustand und das Verhalten eines Prozesses schnell einzuschätzen.

Aufgabe 2 – Prozessbaum anzeigen

In diesem Abschnitt lernst du, wie Prozesse in Linux strukturiert sind und wie du ihre Beziehungen zueinander sichtbar machen kannst. Jeder laufende Prozess gehört zu einem übergeordneten Prozess (Parent Process) und kann selbst wiederum weitere Prozesse erzeugen (Child Processes). Der Befehl pstree zeigt diese Hierarchie in Form eines übersichtlichen Prozessbaums an.

Um dies praktisch zu untersuchen, starten wir zunächst ein grafisches Programm wie Firefox und beobachten anschließend, wie es sich in den Prozessbaum einordnet. Dabei kannst du nachvollziehen, welche übergeordneten Prozesse beteiligt sind und wie Linux intern Anwendungsprozesse verwaltet.

Starte Firefox oder ein anderes grafisches Programm.

firefox &

Danach führe aus:

pstree

Finde Firefox im Prozessbaum und beschreibe, welche Parent-Prozesse über ihm liegen.

Mache einen Screenshot des Prozessbaums (optional).

Aufgabe 3 – Echtzeit-Monitoring

Während der Befehl ps viele Informationen darüber liefern kann, was die Maschine gerade tut, zeigt er nur eine Momentaufnahme des Systemzustands zum Zeitpunkt der Ausführung des ps-Befehls. Um eine dynamischere Ansicht der Systemaktivitäten zu erhalten, verwenden wir den Befehl top.

Das Programm top zeigt eine ständig aktualisierte Anzeige (standardmäßig alle drei Sekunden) der Systemprozesse, sortiert nach ihrer Aktivität. Der Name top kommt daher, dass das Programm verwendet wird, um die „Top“-Prozesse des Systems zu sehen. Die Anzeige von top besteht aus zwei Teilen: einer Systemübersicht am oberen Bildschirmrand, gefolgt von einer Tabelle der Prozesse, sortiert nach CPU-Aktivität.

Führe aus:

top

Identifiziere den Prozess mit dem höchsten CPU-Verbrauch.

Welche Taste musst du drücken, um top zu beenden?

Sortiere im top-Tool nach Speicherverbrauch (RAM). (Hinweis: Taste M)

Aufgabe 4 – grafische Prozessansicht

Installiere und starte htop:

Terminal-Fenster
sudo apt install htop
htop
  • Finde im htop den Prozess bash.

  • Füge eine Spalte hinzu (F2 → Columns → Add).

  • Nutze F9, um einen Testprozess zu terminieren (z. B. sleep 1000 &).

Aufgabe 5 – Prozesse im Hintergrund starten

Starte mehrere Programme im Hintergrund:

gedit & sleep 200 &

Welche PID wurde für jeden Hintergrundprozess vergeben?

Überprüfe mit jobs und ps -aux, ob die Prozesse laufen.

Aufgabe 6 – Prozess per PID beenden

Erzeuge zuerst einen Testprozess:

sleep 500 &

Notiere die PID.

Beende den Prozess mit:

kill <PID>

Erkläre den Unterschied zwischen kill -15 und kill -9.

Aufgabe 7 – alle Prozesse eines Programms beenden

Starte mehrere Instanzen eines Programms, z. B.:

gnome-calculator & gnome-calculator &

Beende alle Instanzen gleichzeitig:

killall gnome-calculator

Überprüfe anschließend mit ps -aux, ob alle beendet wurden.

Welcher Befehl zeigt aktuell laufende Prozesse mit CPU- und RAM-Verbrauch?