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: