Prozesse anzeigen
ps – Schnappschuss
Abschnitt betitelt „ps – Schnappschuss“ps (Process Status) zeigt eine Momentaufnahme der laufenden Prozesse. Ohne Optionen zeigt es nur die Prozesse der aktuellen Shell-Sitzung.
Die drei Optionsstile
Abschnitt betitelt „Die drei Optionsstile“ps ist historisch gewachsen und unterstützt drei verschiedene Optionsstile – was beim ersten Blick in die Manpage verwirrt:
| Stil | Kennzeichen | Herkunft | Beispiel |
|---|---|---|---|
| UNIX | Optionen mit - | POSIX-Standard | ps -e -f oder ps -ef |
| BSD | Optionen ohne - | BSD Unix | ps aux |
| GNU | Lange Optionen mit -- | GNU/Linux-Erweiterung | ps --forest |
Diese Stile lassen sich – in Grenzen – auch kombinieren:
ps -ef --forest # UNIX + GNU: alle Prozesse als Baumps aux --forest # BSD + GNU: dasselbe, anderes AusgabeformatEigene Lieblingskombination finden
Abschnitt betitelt „Eigene Lieblingskombination finden“ps hat Dutzende Optionen – niemand kennt sie alle auswendig. In der Praxis merkt man sich eine oder zwei Kombinationen, die für den eigenen Alltag passen, und greift bei Bedarf zur Manpage:
ps aux # weit verbreitet; zeigt USER, %CPU, %MEM, COMMANDps -ef # ebenfalls verbreitet; zeigt UID, PID, PPID, TIME, CMDps -ef --forest # wie -ef, aber mit Baumdarstellung der Eltern-Kind-Beziehungenps -eo pid,user,ni,stat,cmd # eigene Spaltenauswahl mit -oMit -o lässt sich die Ausgabe exakt auf die gewünschten Felder reduzieren:
ps -eo pid,ppid,user,stat,cmd --sort=-%cpu | head -10# Top-10 Prozesse nach CPU-Auslastung, mit PID, PPID, User, Zustand und BefehlSpalten verstehen: ps aux
Abschnitt betitelt „Spalten verstehen: ps aux“USER PID %CPU %MEM VSZ RSS STAT COMMANDroot 1 0.0 0.1 168940 11832 Ss /sbin/initalice 892 0.0 0.1 10936 5120 Ss bashalice 1034 1.2 0.8 234512 34816 Sl vim bericht.txt| Spalte | Bedeutung |
|---|---|
USER | Besitzender Benutzer |
PID | Prozess-ID |
%CPU | CPU-Auslastung |
%MEM | Anteil am physischen RAM |
VSZ | Virtueller Speicher (KB) |
RSS | Tatsächlich genutzter RAM (Resident Set Size, KB) |
STAT | Prozesszustand (siehe unten) |
COMMAND | Startbefehl |
Zustandscodes in der STAT-Spalte
Abschnitt betitelt „Zustandscodes in der STAT-Spalte“| Code | Bedeutung |
|---|---|
R | Running |
S | Sleeping (unterbrechbar) |
D | Sleeping (nicht unterbrechbar – wartet auf I/O) |
T | Stopped |
Z | Zombie |
s | Session-Leader |
l | Multi-threaded |
+ | Im Vordergrund |
< | Erhöhte Priorität |
N | Niedrige Priorität (nice) |
Gezielt suchen mit ps und grep
Abschnitt betitelt „Gezielt suchen mit ps und grep“ps aux | grep nginx # läuft nginx?ps aux | grep -v grep # grep selbst aus der Liste entfernenps -ef | grep "python" # Python-Prozesse findentop – interaktive Echtzeitansicht
Abschnitt betitelt „top – interaktive Echtzeitansicht“top zeigt laufend aktualisierte Prozessinformationen und gibt einen Überblick über die Systemauslastung:
toptop - 14:32:01 up 3 days, 2:14, 2 users, load average: 0.42, 0.38, 0.31Tasks: 187 total, 1 running, 186 sleeping, 0 stopped, 0 zombie%Cpu(s): 3.2 us, 1.1 sy, 0.0 ni, 95.4 id, 0.2 wa, 0.0 hi, 0.1 siMiB Mem : 15927.1 total, 8234.2 free, 4521.3 used, 3171.6 buff/cacheMiB Swap: 2048.0 total, 2048.0 free, 0.0 used. 10892.4 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1034 alice 20 0 234512 34816 28400 S 1.2 0.2 0:03.14 vim 892 alice 20 0 10936 5120 3840 S 0.0 0.0 0:00.42 bashTastenbefehle in top
Abschnitt betitelt „Tastenbefehle in top“| Taste | Aktion |
|---|---|
q | Beenden |
h | Hilfe |
k | Prozess beenden (PID eingeben, dann Signal) |
r | Priorität ändern (renice) |
u | Nach Benutzer filtern |
M | Nach Speicherverbrauch sortieren |
P | Nach CPU-Auslastung sortieren (Standard) |
T | Nach Laufzeit sortieren |
1 | CPU-Kerne einzeln anzeigen |
Kopfzeile verstehen
Abschnitt betitelt „Kopfzeile verstehen“- load average: Durchschnittliche CPU-Last der letzten 1, 5 und 15 Minuten. Wert ≤ Anzahl CPU-Kerne = System nicht überlastet.
- us/sy/id/wa: CPU-Zeit für User-Prozesse / System / Idle / Warten auf I/O
pgrep – Prozesse nach Name finden
Abschnitt betitelt „pgrep – Prozesse nach Name finden“pgrep gibt die PIDs von Prozessen aus, deren Name auf ein Muster passt:
pgrep bash # alle bash-PIDspgrep -u alice # alle Prozesse von alicepgrep -la nginx # PIDs und Namen anzeigen (-l)pgrep -c sshd # Anzahl matching ProzesseNützlich in Skripten – statt ps aux | grep ... | awk ...:
if pgrep nginx > /dev/null; then echo "nginx läuft"fipstree – Prozessbaum visualisieren
Abschnitt betitelt „pstree – Prozessbaum visualisieren“pstree zeigt alle Prozesse als Baum und macht Eltern-Kind-Beziehungen sofort sichtbar:
pstree # gesamter Baum ab PID 1pstree alice # nur Prozesse von alicepstree -p # mit PIDspstree -u # mit Benutzernamenpstree $$ # Baum ab aktueller Shellsystemd─┬─sshd───sshd───bash───pstree ├─cron └─nginx─┬─nginx └─nginx