Prozesse erzeugen, überwachen und beenden

In einem Linux-System ist der Umgang mit Prozessen ein zentraler Bestandteil der Systemadministration und des täglichen Gebrauchs. Jeder ausgeführte Befehl oder jedes Programm ist ein Prozess, und das Betriebssystem verwaltet diese Prozesse, um die verfügbaren Systemressourcen effizient zu nutzen. In diesem Blogbeitrag schauen wir uns an, wie man in Linux Prozesse erzeugt, überwacht und beendet, sowie einige praktische Befehle und Werkzeuge, um Prozesse im Griff zu behalten.

1. Was ist ein Prozess in Linux?

Ein Prozess ist im Grunde genommen ein laufendes Programm oder eine Ausführungseinheit, die Systemressourcen wie CPU, Speicher und I/O-Geräte benötigt. Jeder Prozess in Linux erhält eine eindeutige Prozess-ID (PID), die vom Betriebssystem verwendet wird, um ihn zu identifizieren und zu verwalten.

Es gibt verschiedene Arten von Prozessen:

  • Vordergrundprozesse: Prozesse, die im Terminal gestartet werden und dessen Kontrolle übernehmen.
  • Hintergrundprozesse: Prozesse, die im Hintergrund ausgeführt werden und keine Benutzerinteraktion benötigen.
  • Daemons: Hintergrundprozesse, die oft Systemdienste bereitstellen (z.B. der Webserver Apache).

2. Prozesse Erzeugen

Die einfachste Art, einen Prozess zu erzeugen, ist durch das Ausführen eines Befehls in der Kommandozeile. Hier sind einige Beispiele:

  • Einen Prozess im Vordergrund starten:Wenn du einen Befehl wie ls oder vim eingibst, wird der Prozess im Vordergrund gestartet und du kannst mit ihm interagieren.bashCode kopieren
ls -l

Einen Prozess im Hintergrund starten:

Du kannst einen Prozess auch im Hintergrund laufen lassen, indem du ein & hinter den Befehl setzt. Dies ist nützlich, wenn du deine Kommandozeile weiter benutzen möchtest, während der Prozess läuft.

sleep 60 &

Dieser Befehl führt sleep 60 Sekunden lang im Hintergrund aus. Nach dem Start wird eine PID für den Hintergrundprozess angezeigt.

Einen Hintergrundprozess in den Vordergrund holen:

Falls du einen Prozess im Hintergrund laufen hast, kannst du ihn mit dem Befehl fg (foreground) in den Vordergrund holen.

fg %1
  • Hierbei steht %1 für den Job, den du in den Vordergrund holen möchtest.

3. Prozesse Überwachen

Um zu wissen, welche Prozesse auf deinem System laufen und wie viele Ressourcen sie nutzen, gibt es verschiedene Befehle, die dir detaillierte Informationen über die laufenden Prozesse geben.

3.1 Der ps-Befehl

Der Befehl ps (process status) zeigt Informationen über die laufenden Prozesse in deinem System an.

  • Alle laufenden Prozesse anzeigen:
ps aux

Hier zeigt ps aux eine Liste aller laufenden Prozesse, zusammen mit Informationen wie der PID, dem Benutzer, der den Prozess gestartet hat, und der CPU- und Speicher-Auslastung.

Prozesse eines bestimmten Benutzers anzeigen:

ps -u benutzername
  • Dieser Befehl zeigt nur die Prozesse des angegebenen Benutzers an.

3.2 Der top-Befehl

top ist ein interaktives Tool, das die laufenden Prozesse in Echtzeit anzeigt. Es sortiert die Prozesse standardmäßig nach CPU-Nutzung, sodass du schnell sehen kannst, welche Prozesse die meisten Ressourcen beanspruchen.

top
  • CPU- und Speicherauslastung überwachen: top zeigt dir auch eine Zusammenfassung der Systemauslastung an, wie die Gesamt-CPU-Nutzung und den freien Arbeitsspeicher.
  • Einen bestimmten Prozess überwachen: Du kannst top verwenden, um nach einem bestimmten Prozess zu suchen, indem du / drückst und den Namen des Prozesses eingibst.
  • Ein Prozess beenden: Drücke k und gib die PID des Prozesses ein, den du beenden möchtest.

3.3 Der htop-Befehl

htop ist eine erweiterte und benutzerfreundlichere Version von top, die eine farbige, interaktive Oberfläche bietet. Mit htop kannst du Prozesse einfacher navigieren, sortieren und beenden.

Um htop zu verwenden, musst du es eventuell installieren:

sudo apt install htop

Dann kannst du es starten:

htop

Mit htop kannst du Prozesse mit den Pfeiltasten auswählen und sie durch Drücken von F9 beenden.

4. Prozesse Beenden

Es gibt mehrere Möglichkeiten, einen Prozess zu beenden, sowohl über die Kommandozeile als auch durch interaktive Tools wie htop.

4.1 Der kill-Befehl

Mit dem Befehl kill kannst du einen Prozess basierend auf seiner Prozess-ID (PID) beenden.

  • Einen Prozess beenden:
kill PID

Ersetze PID durch die Prozess-ID des Prozesses, den du beenden möchtest. Du kannst die PID eines Prozesses mit dem Befehl ps oder top herausfinden.

Prozesse zwangsweise beenden:

Wenn ein Prozess auf das normale kill-Signal nicht reagiert, kannst du ihn mit kill -9 zwangsweise beenden.

kill -9 PID

4.2 Der killall-Befehl

Der Befehl killall beendet alle Prozesse, die einen bestimmten Namen haben. Das ist besonders nützlich, wenn du mehrere Instanzen desselben Programms beenden möchtest.

  • Alle Prozesse mit einem bestimmten Namen beenden:
killall firefox
  • Dieser Befehl beendet alle laufenden firefox-Prozesse.

4.3 Der pkill-Befehl

pkill ist ein weiteres nützliches Werkzeug zum Beenden von Prozessen, das ähnlich wie killall funktioniert, aber auch Teilstrings von Prozessnamen oder weitere Kriterien akzeptiert.

  • Prozesse nach Namen beenden:
pkill chrome

Prozesse eines bestimmten Benutzers beenden:

pkill -u benutzername

4.4 Jobs-Verwaltung

Mit den Befehlen jobs, bg und fg kannst du Prozesse, die im Hintergrund oder angehalten wurden, verwalten.

  • Liste der Jobs anzeigen:
jobs

Dieser Befehl zeigt eine Liste der laufenden oder angehaltenen Jobs im aktuellen Terminal an.

Einen Job in den Hintergrund schicken:

Wenn ein Prozess im Vordergrund läuft, kannst du ihn mit Ctrl + Z anhalten und dann mit bg in den Hintergrund schicken.

bg %1

Dies setzt den Job %1 im Hintergrund fort.

Einen angehaltenen Job in den Vordergrund holen:

fg %1
  • Dies bringt den Job %1 wieder in den Vordergrund.

5. Weitere nützliche Prozessbefehle

  • nice und renice: Diese Befehle steuern die Priorität eines Prozesses. Prozesse mit einer niedrigeren „Nice“-Wert haben eine höhere Priorität.
    • Einen Prozess mit einer niedrigeren Priorität starten:
nice -n 10 befehl

Die Priorität eines laufenden Prozesses ändern:

renice 15 -p PID

nohup: Wenn du möchtest, dass ein Prozess nach dem Abmelden weiterhin läuft, kannst du ihn mit nohup starten.

nohup befehl &

6. Fazit

Die Verwaltung von Prozessen in Linux ist eine wesentliche Aufgabe, die jedem Benutzer oder Administrator hilft, die Kontrolle über die Systemressourcen zu behalten. Mit Werkzeugen wie ps, top, htop, kill, killall und nice kannst du sicherstellen, dass dein System reibungslos läuft und ineffiziente Prozesse identifizieren, überwachen und bei Bedarf beenden.

Ob du einfache Befehle im Vordergrund ausführst, Prozesse im Hintergrund laufen lässt oder eine umfassende Systemüberwachung durchführst – die Prozessverwaltung in Linux gibt dir alle Werkzeuge in die Hand, die du für ein effektives Systemmanagement benötigst.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert