Linux Prozesse Verwalten
Linux Prozesse: Überwachen und Verwalten
Jedes laufende Programm ist ein Prozess. Lernen Sie, wie Sie Prozesse anzeigen, überwachen und bei Bedarf beenden können.
Prozesse anzeigen
ps - Prozess-Snapshot
# Eigene Prozesse ps # Alle Prozesse ps aux # Alle mit voller Kommandozeile ps auxf # Nur bestimmter User ps -u www-data # Prozess nach Name suchen ps aux | grep nginx
ps aux Spalten erklärt
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.1 168936 11204 ? Ss Jan15 0:05 /sbin/init
| Spalte | Bedeutung |
|---|---|
| USER | Besitzer des Prozesses |
| PID | Process ID (eindeutig) |
| %CPU | CPU-Auslastung |
| %MEM | RAM-Auslastung |
| VSZ | Virtueller Speicher (KB) |
| RSS | Physischer Speicher (KB) |
| STAT | Status (S=sleeping, R=running) |
| TIME | CPU-Zeit verbraucht |
Echtzeit-Überwachung
top
top # Wichtige Tasten in top: # q = Beenden # k = Prozess killen # M = Nach Speicher sortieren # P = Nach CPU sortieren # u = Nach User filtern # c = Volle Kommandozeile
htop (empfohlen)
# Installation sudo apt install htop # Starten htop # Tasten: # F2 = Setup # F3 = Suchen # F4 = Filtern # F5 = Baumansicht # F6 = Sortieren # F9 = Kill # F10 = Beenden
Ressourcen-Übersicht
# Schnelle Übersicht free -h # RAM df -h # Festplatte uptime # Load Average # Netzwerk-Verbindungen ss -tuln # Offene Ports netstat -tuln # Alternative
Prozesse beenden
kill - Signal senden
# Prozess normal beenden (SIGTERM) kill 1234 # Prozess sofort beenden (SIGKILL) kill -9 1234 # Alle Prozesse eines Programms killall nginx # Mit Muster pkill -f "python script.py"
Wichtige Signale
| Signal | Nummer | Bedeutung |
|---|---|---|
| SIGTERM | 15 | Sauber beenden (Standard) |
| SIGKILL | 9 | Sofort beenden (nicht abfangbar) |
| SIGHUP | 1 | Neu laden (Config) |
| SIGSTOP | 19 | Pausieren |
| SIGCONT | 18 | Fortsetzen |
# Config neu laden ohne Neustart kill -HUP $(cat /var/run/nginx.pid) # Oder mit systemctl sudo systemctl reload nginx
Hintergrund-Prozesse
# Programm im Hintergrund starten ./script.sh & # Laufendes Programm in Hintergrund # Strg+Z (pausieren) # bg (im Hintergrund fortsetzen) # Hintergrund-Jobs anzeigen jobs # Job in Vordergrund holen fg %1 # Prozess vom Terminal lösen nohup ./script.sh & # oder disown -h %1
Systemd Services
# Service-Status sudo systemctl status nginx # Service starten/stoppen sudo systemctl start nginx sudo systemctl stop nginx sudo systemctl restart nginx sudo systemctl reload nginx # Beim Boot starten sudo systemctl enable nginx sudo systemctl disable nginx # Alle Services systemctl list-units --type=service # Fehlgeschlagene Services systemctl --failed
Prozess-Priorität
# Nice-Wert: -20 (höchste) bis 19 (niedrigste Priorität) # Mit niedriger Priorität starten nice -n 19 ./heavy-task.sh # Laufenden Prozess anpassen renice -n 10 -p 1234 # Ionice für I/O-Priorität ionice -c3 ./backup.sh # Idle (niedrigste)
Speicherfresser finden
# Top 10 nach Speicher
ps aux --sort=-%mem | head -11
# Top 10 nach CPU
ps aux --sort=-%cpu | head -11
# Speicherverbrauch eines Prozesses
pmap 1234 | tail -1
# Speicher pro User
ps aux | awk '{arr[$1]+=$4} END {for (i in arr) print i, arr[i]}' | sort -k2 -nr
Zombie-Prozesse
# Zombies finden ps aux | grep 'Z' # Zombie-Prozesse haben Status Z # Sie belegen keine Ressourcen, aber PID # Lösung: Parent-Prozess neustarten # Parent finden ps -o ppid= -p ZOMBIE_PID
💡 Tipp:
Nutzen Sie htop statt top – es ist übersichtlicher und einfacher zu bedienen. Mit Enjyn Server Monitor können Sie Ihre Server auch remote überwachen.