ps zeigt eine Momentaufnahme laufender Prozesse, top überwacht sie live und kill beendet sie. Zusammen sind sie das Basiswerkzeug, um zu verstehen, was auf einem Linux-System gerade arbeitet — und es bei Bedarf zu stoppen.
ps: Prozesse anzeigen
ps aux # alle Prozesse mit CPU-/Speichernutzung (Standard)
ps -ef # alle Prozesse, volle Kommandozeile
ps aux | grep nginx # nach einem Dienst filtern
ps -e --forest # Prozessbaum (Eltern-Kind-Beziehung)
ps -u michael # nur Prozesse eines Benutzers
ps -p 1234 -o pid,cmd # gezielt eine PID abfragen
Die PID (Process ID) ist die Nummer, mit der man einen Prozess später anspricht. ps aux zeigt sie in der zweiten Spalte.
top: Live-Überwachung
top # Live-Ansicht, aktualisiert sich selbst
top -o %MEM # nach Speichernutzung sortieren
htop # komfortablere Variante (falls installiert)
In top sortiert P nach CPU, M nach Speicher, k beendet einen Prozess (PID eingeben), q verlässt die Ansicht.
kill: Prozesse beenden
kill 1234 # Signal TERM: sauberes Beenden anfordern
kill -9 1234 # Signal KILL: sofort beenden (letzte Möglichkeit)
killall nginx # alle Prozesse mit diesem Namen beenden
pkill -f "node app.js" # per Namensmuster beenden
kill -l # Liste aller Signale anzeigen
Die Reihenfolge ist wichtig: erst kill PID (Signal 15, TERM — der Prozess kann aufräumen), erst wenn das nicht wirkt kill -9 (Signal 9, KILL — hartes Beenden ohne Aufräumen).
Praxis-Tipps
pgrep nginxliefert nur die PID-Nummern — perfekt für Skripte.- Hängende Prozesse lassen sich oft mit
kill -9beenden; vorher aberkillversuchen, sonst gehen ungesicherte Daten verloren. - Mit
ps -o pid,%cpu,%mem,cmd --sort=-%cpubekommt man die CPU-lastigsten Prozesse als Liste. nice -n 10 ./schwer.shstartet einen Prozess mit niedrigerer Priorität, damit er andere nicht ausbremst.
Verwandte Grundlagen: Bash-Befehle, sort, uniq und cut und systemctl und journalctl.