So zeigen Sie alle Prozesse unter Linux an: Ein umfassender Überblick

Foto des Autors

By Jan

Befehle zum Anzeigen aller Prozesse

Du kannst verschiedene Befehle verwenden, um alle Prozesse auf deinem Linux-System anzuzeigen. Hier sind die gängigsten Optionen:

ps

Der Befehl ps ist das grundlegende Werkzeug zum Auflisten von Prozessen. Er zeigt eine Liste aller Prozesse an, die derzeit ausgeführt werden, zusammen mit Informationen wie Prozess-ID (PID), Benutzername, Ausführungszeit und Befehl.

Um alle Prozesse anzuzeigen, führe ps aux aus. Die Option a zeigt alle Prozesse an, auch die beendeten, und die Option u zeigt zusätzliche Informationen wie die CPU- und Arbeitsspeicherauslastung an.

top

Der Befehl top bietet eine interaktive Echtzeitansicht aller Prozesse. Er zeigt eine Tabelle mit Informationen wie PID, Befehl, CPU-Auslastung, Arbeitsspeicherauslastung und Ausführungszeit an.

Du kannst top verwenden, um Prozesse nach verschiedenen Kriterien zu sortieren und zu filtern. Drücke h für eine Liste der verfügbaren Befehle.

pgrep

Der Befehl pgrep sucht nach Prozessen, die einem bestimmten Muster entsprechen. Er kann nützlich sein, um Prozesse nach ihrem Namen oder anderen Kriterien zu finden.

Um beispielsweise alle Prozesse zu finden, die firefox enthalten, führe pgrep firefox aus.

pidof

Der Befehl pidof ist ähnlich wie pgrep, sucht jedoch nur nach der Prozess-ID. Er kann verwendet werden, um die PID eines bestimmten Prozesses zu ermitteln.

Um beispielsweise die PID des Prozesses firefox zu ermitteln, führe pidof firefox aus.

Ausgabe formatieren und filtern

Nachdem du die Liste der Prozesse erhalten hast, kannst du die Ausgabe weiter formatieren und filtern, um eine gezieltere Ansicht deiner Prozesse zu erhalten.

Ausgabe formatieren

Mit dem Befehl ps -F kannst du die Ausgabeformatierung anpassen. So kannst du beispielsweise die folgenden Spalten zur Ausgabe hinzufügen:

  • %CPU: CPU-Auslastung in Prozent
  • %MEM: Arbeitsspeicherauslastung in Prozent
  • VSZ: Virtueller Speicher in Bytes
  • RSS: Physikalischer Speicher in Bytes
  • TTY: Zugewiesenes Terminal
  • STAT: Prozessstatus

Verwende folgende Syntax:

ps -F <Formatierungszeichen>

Zum Beispiel:

ps -F %CPU,%MEM,%VSZ,%RSS,%TTY,%STAT

Ausgabe filtern

Um die Prozessliste zu filtern, kannst du die Optionen -C, -u und -f verwenden.

Filtern nach Befehl

Mit -C <Befehl> kannst du Prozesse filtern, die einen bestimmten Befehl ausführen.

Beispiel:

ps -C firefox

Filtern nach Benutzer

Mit -u <Benutzername> kannst du Prozesse filtern, die einem bestimmten Benutzer gehören.

Beispiel:

ps -u john

Kombinierte Filter

Du kannst mehrere Filteroptionen kombinieren, um die Ausgabe weiter einzugrenzen.

Beispiel:

ps -C firefox -u john

Dies zeigt dir alle Firefox-Prozesse, die von einem Benutzer namens John ausgeführt werden.

Prozesse nach Kriterien sortieren

Das Sortieren von Prozessen nach verschiedenen Kriterien kann hilfreich sein, um bestimmte Vorgänge oder Probleme zu identifizieren. Linux bietet mehrere Optionen zum Sortieren von Prozessen.

Sortierung nach Prozess-ID (PID)

Die einfachste Sortiermethode ist nach der Prozess-ID (PID), die jedem Prozess eindeutig zugewiesen ist. Verwende die folgenden Befehle:

ps aux | sort -nrk 2

Sortierung nach CPU-Auslastung

Um Prozesse nach ihrer CPU-Auslastung zu sortieren, verwende den Befehl sort -nrk 3:

ps aux | sort -nrk 3

Sortierung nach Arbeitsspeicherauslastung

Um Prozesse nach ihrer Arbeitsspeicherauslastung zu sortieren, verwende den Befehl sort -nrk 4:

ps aux | sort -nrk 4

Weitere Sortieroptionen

Zusätzlich zu den oben genannten Kriterien kannst du auch nach anderen Feldern sortieren, wie z. B.:

  • Befehlsname (CMD): sort -nrk 11
  • Benutzername (USER): sort -nrk 1
  • Terminal (TTY): sort -nrk 7
  • Startzeit (START): sort -nrk 9

Beispielsweise, um Prozesse nach Befehlsname zu sortieren, würdest du folgenden Befehl verwenden:

ps aux | sort -nrk 11

Tipps

  • Verwende die Option -r, um die Ausgabe in absteigender Reihenfolge zu sortieren (höchster Wert zuerst).
  • Füge eine Pipe (|) vor dem Sortierbefehl ein, um die Ausgabe anderer Befehle zu sortieren, z. B.:
top -b -n 1 | sort -nrk 9
  • Verwende die Option -u, um eindeutige Ergebnisse zu erhalten, die doppelte Prozesse entfernen.

Prozesse nach Benutzer filtern

Die Filterung von Prozessen nach Benutzer kann dir helfen, die von einem bestimmten Benutzer ausgeführten Aktivitäten zu überwachen. Dies kann bei der Fehlerbehebung oder Sicherheitsuntersuchungen nützlich sein.

ps aux verwenden

Der Befehl ps aux zeigt alle Prozesse mit detaillierten Informationen an, einschließlich des Besitzers jedes Prozesses. Führe den folgenden Befehl aus, um Prozesse nach Benutzer zu filtern:

ps aux | grep username

Ersetze username durch den Benutzernamen, nach dem du filtern möchtest.

getUsers verwenden

Das Tool getUsers ist eine hilfreiche Alternative zu ps für die Filterung von Prozessen nach Benutzer. Es bietet eine benutzerfreundlichere Oberfläche und zusätzliche Funktionen:

sudo apt install getUsers
getUsers username

Mit -u filtern

Wenn du ps verwendest, kannst du auch die Option -u verwenden, um nach Benutzer zu filtern:

ps -u username

Was ist zu beachten?

  • Groß-/Kleinschreibung: Beachte, dass bei der Angabe von Benutzernamen die Groß-/Kleinschreibung beachtet werden muss.
  • Mehrere Benutzer: Du kannst nach mehreren Benutzern filtern, indem du ihre Benutzernamen durch Kommas trennst:
ps aux | grep username1,username2
  • Sonderzeichen: Wenn der Benutzername Sonderzeichen enthält, verwende Anführungszeichen:
ps aux | grep "username with spaces"

Prozessstatus verstehen

Wenn du dir alle Prozesse auf deinem Linux-System ansiehst, wirst du feststellen, dass sie sich in unterschiedlichen Status befinden können. Diese Status geben Aufschluss über den aktuellen Ausführungszustand des Prozesses und können dir helfen, Probleme zu diagnostizieren oder die Leistung zu optimieren.

Mögliche Prozessstatus

Die gängigsten Prozessstatus sind:

  • R (Running): Der Prozess wird derzeit vom Prozessor ausgeführt.
  • S (Sleeping): Der Prozess wartet auf eine Ressource (z. B. Eingabe vom Benutzer oder Zugriff auf eine Datei) und verbraucht keine CPU-Zeit.
  • D (Uninterruptible Sleep): Wie Sleeping, aber der Prozess kann nicht durch Signale unterbrochen werden.
  • Z (Zombie): Der Prozess wurde beendet, aber sein Eintrag im Prozesstabellen bleibt noch bestehen, bis der übergeordnete Prozess den Status des Kindes abruft.
  • T (Stopped): Der Prozess wurde durch ein Signal angehalten und wartet darauf, fortgesetzt zu werden.
  • X (Dead): Der Prozess wurde beendet, aber sein Exit-Status wurde noch nicht vom übergeordneten Prozess abgerufen.

Abrufen des Prozessstatus

Du kannst den Status eines Prozesses mit dem Befehl ps abrufen, gefolgt von der Prozess-ID (PID) oder dem Befehlsnamen:

ps -p <PID>
ps -C <Befehlsname>

Verwendung des Prozessstatus

Das Verständnis des Prozessstatus kann dir dabei helfen:

  • Probleme diagnostizieren: Wenn ein Prozess nicht wie erwartet läuft, kann dir sein Status Aufschluss über die Ursache des Problems geben. Beispielsweise kann ein Prozess im Status "Sleeping" darauf warten, auf eine Datei zuzugreifen, die von einem anderen Prozess gesperrt wurde.
  • Leistung optimieren: Du kannst Prozesse identifizieren, die eine hohe CPU- oder Arbeitsspeicherauslastung verursachen, und Maßnahmen ergreifen, um ihre Auswirkungen zu minimieren. Beispielsweise kannst du einen Prozess mit hohem CPU-Verbrauch in einen niedrigeren Prioritätsmodus versetzen.
  • Prozesse verwalten: Du kannst Prozesse beenden, die nicht mehr benötigt werden oder Probleme verursachen.

CPU- und Arbeitsspeicherauslastung anzeigen

Neben dem Anzeigen von Informationen zu Prozessen kann die Überwachung ihrer Ressourcennutzung wertvolle Einblicke in die Systemleistung geben.

CPU-Auslastung

Um die CPU-Auslastung eines Prozesses anzuzeigen, verwende den Befehl top.

top

In der Ausgabe von top wird eine Liste aller laufenden Prozesse angezeigt, wobei die CPU-Auslastung in der Spalte "%CPU" angegeben ist. Je höher der Wert, desto mehr CPU-Ressourcen werden vom Prozess beansprucht.

Arbeitsspeicherauslastung

Die Arbeitsspeicherauslastung eines Prozesses kannst du ebenfalls mit top anzeigen.

top -o rss

Die Ausgabe von top enthält nun eine zusätzliche Spalte namens "RSS", die die Größe des vom Prozess verwendeten Arbeitsspeichers in Kilobyte angibt.

Prozessanalysetools

Für eine detailliertere Prozessanalyse kannst du Tools wie ps und htop verwenden.

ps

Der Befehl ps bietet eine Vielzahl von Optionen zum Anzeigen von Prozessinformationen, darunter auch die CPU- und Arbeitsspeicherauslastung.

ps -eo pid,user,pcpu,pmem,comm

htop

htop ist ein interaktives Prozessüberwachungstool, das Echtzeitinformationen über die CPU- und Arbeitsspeicherauslastung bietet.

htop

Durch die Verwendung dieser Tools kannst du nicht nur die Ressourcennutzung der Prozesse überwachen, sondern auch ihre Auswirkungen auf das Gesamtsystem verstehen.

Fortgeschrittene Prozessverwaltungstools

Neben den Standardbefehlen stehen dir eine Reihe von fortgeschrittenen Tools zur Verfügung, die dir noch mehr Einblick und Kontrolle über deine Prozesse geben können.

htop

htop ist ein interaktives Echtzeit-Prozessmonitor, das eine umfassende Übersicht über alle laufenden Prozesse liefert. Es bietet Funktionen wie:

  • Sortierung nach verschiedenen Kriterien (CPU-Auslastung, Arbeitsspeicherverbrauch, Prozessstatus)
  • Detaillierte Informationen zu jedem Prozess (Kommandozeile, Ausführungszeit, Ressourcenverbrauch)
  • Möglichkeit, Prozesse zu beenden, Prioritäten zu ändern und CPU-Zugehörigkeit festzulegen
  • Unterstützung für benutzerdefinierte Filter und Tastenkombinationen

atop

atop ist ein fortschrittliches Tool zur Überwachung und Analyse von Prozessen mit Schwerpunkt auf Leistung und Ressourcenverbrauch. Es bietet Funktionen wie:

  • Überwachung von CPU-, Arbeitsspeicher-, E/A- und Netzwerkressourcen
  • Identifizierung von Engpässen und Leistungsproblemen
  • Bereitstellung von historischen Daten und langfristigen Trends
  • Unterstützung für benutzerdefinierte Berichterstellung und Datenexport

psacct

psacct ist ein Werkzeug zur Abrechnung von Prozessen, mit dem du die Ressourcennutzung von Prozessen über einen bestimmten Zeitraum hinweg verfolgen kannst. Es bietet Funktionen wie:

  • Ausführliche Aufzeichnung der Prozessressourcennutzung (CPU-Zeit, Arbeitsspeicherverbrauch, E/A-Operationen)
  • Unterstützung für die Zuweisung von Kosten zu Prozessen basierend auf der Nutzung
  • Bereitstellung von Abrechnungsberichten und Datenanalysen

pstree

pstree ist ein Tool zur Visualisierung der Prozesshierarchie, das dir einen grafischen Überblick über die Beziehungen zwischen laufenden Prozessen gibt. Es bietet Funktionen wie:

  • Baumartige Darstellung der Prozesshierarchie
  • Möglichkeit, den Baum zu vergrößern, zu verkleinern und zu navigieren
  • Unterstützung für die Integration mit anderen Tools wie top oder htop

Weitere Ressourcen

Weitere Informationen zu fortgeschrittenen Prozessverwaltungstools findest du in den folgenden Ressourcen:

Schreibe einen Kommentar