Ein Prozess ist ein laufendes Programm. Jeder Prozess hat eine eindeutige PID (Process ID) und einen Parent-Prozess (PPID). Der erste Prozess beim Systemstart hat die PID 1 – in modernen Linux-Systemen ist das systemd.
Prozesse haben verschiedene Zustände:
Running (R): Prozess läuft oder wartet auf CPU-Zeit
Sleeping (S): Prozess wartet auf ein Ereignis (I/O, Signal)
Stopped (T): Prozess wurde mit SIGSTOP angehalten
Zombie (Z): Prozess ist beendet aber nicht vom Parent-Prozess abgeholt
# Alle laufenden Prozesse anzeigen
ps aux
# Prozessbaum anzeigen
pstree
# Interaktive Prozessübersicht (wie Task-Manager)
top
# Modernere interaktive Übersicht
htop
# Prozess nach Name suchen
pgrep nginx
pidof nginx
# Prozess beenden (Signal SIGTERM – höflich)
kill 1234 # per PID
kill -15 1234 # SIGTERM explizit
# Prozess sofort beenden (Signal SIGKILL – brutal)
kill -9 1234
# Prozess nach Name beenden
pkill nginx
killall nginxSignal | Nummer | Bedeutung |
|---|---|---|
SIGTERM | 15 | Beenden anfordern – Prozess kann aufräumen |
SIGKILL | 9 | Sofort beenden – nicht abfangbar |
SIGHUP | 1 | Konfiguration neu laden |
SIGSTOP | 19 | Prozess anhalten |
SIGCONT | 18 | Angehaltenen Prozess fortsetzen |
# Prozess im Hintergrund starten
./skript.sh &
# Laufenden Prozess in den Hintergrund schicken
# Erst Strg+Z (stoppt den Prozess), dann:
bg
# Hintergrundprozess in den Vordergrund holen
fg
# Alle Hintergrundprozesse anzeigen
jobs
# Prozess läuft weiter wenn Terminal geschlossen wird
nohup ./skript.sh &systemd ist seit Jahren der Standard-Init-Dienst in allen großen Linux-Distributionen (Ubuntu, RHEL, Debian, SUSE). Es ist der erste Prozess (PID 1) und startet alle anderen Dienste. Es löste das ältere SysV-Init-System ab.
systemd verwaltet Units – Konfigurationseinheiten für Dienste, Mounts, Timer und mehr. Die wichtigsten Unit-Typen:
.service: Systemdienste (nginx, sshd, mysql)
.timer: Zeitgesteuerte Aufgaben (Cron-Ersatz)
.mount: Einhängepunkte
.socket: Socket-Aktivierung
systemctl ist das Hauptwerkzeug zur Verwaltung von systemd-Units:
# Dienst starten
systemctl start nginx
# Dienst stoppen
systemctl stop nginx
# Dienst neu starten
systemctl restart nginx
# Dienst neu laden (Konfiguration ohne Neustart)
systemctl reload nginx
# Dienststatus anzeigen
systemctl status nginx
# Dienst beim Boot automatisch starten
systemctl enable nginx
# Autostart deaktivieren
systemctl disable nginx
# Dienst aktivieren UND sofort starten
systemctl enable --now nginx
# Alle laufenden Dienste anzeigen
systemctl list-units --type=service --state=running
# Alle fehlgeschlagenen Dienste
systemctl --failedsystemd protokolliert alle Dienste im Journal. journalctl ist das Tool zum Lesen des Journals:
# Alle Logs anzeigen
journalctl
# Logs eines bestimmten Dienstes
journalctl -u nginx
# Logs seit dem letzten Boot
journalctl -b
# Logs in Echtzeit verfolgen (wie tail -f)
journalctl -f
# Logs der letzten Stunde
journalctl --since "1 hour ago"
# Logs zwischen zwei Zeitpunkten
journalctl --since "2024-01-01 08:00" --until "2024-01-01 10:00"
# Nur Fehlermeldungen
journalctl -p errUnit-Dateien für eigene Dienste werden unter /etc/systemd/system/ erstellt:
# /etc/systemd/system/mein-dienst.service
[Unit]
Description=Mein eigener Dienst
After=network.target
[Service]
Type=simple
User=www-data
ExecStart=/usr/bin/python3 /opt/mein-skript.py
Restart=always
[Install]
WantedBy=multi-user.target# Nach dem Erstellen einer neuen Unit-Datei:
systemctl daemon-reload
systemctl enable --now mein-dienst# CPU- und Speicherauslastung (interaktiv)
top
htop
# Speichernutzung
free -h
# Festplattennutzung
df -h # freier Speicher pro Partition
du -sh /var # Größe eines Verzeichnisses
# I/O-Auslastung
iostat
iotop
# Netzwerk-Auslastung
iftop
nethogsJeder Prozess hat eine PID – PID 1 ist systemd
Prozesse anzeigen: ps aux, top, htop
Prozesse beenden: kill -15 (SIGTERM, höflich) oder kill -9 (SIGKILL, sofort)
systemd ist der Standard-Init-Dienst – verwaltet Dienste als Units
systemctl: start, stop, restart, reload, enable, disable, status
journalctl: Logs lesen – -u Dienst, -f (live), -b (seit Boot)
Eigene Services: Unit-Datei in /etc/systemd/system/, dann daemon-reload