Linux Prozesse & Jobs

7 Kernbefehle
Die wichtigsten Befehle für Prozess- und Jobverwaltung: ps · top · kill · jobs · fg/bg · nohup · systemctl Mit diesen Befehlen können Sie laufende Prozesse anzeigen, steuern, im Hintergrund ausführen und Systemdienste verwalten.

ps – Prozesse anzeigen

ps [Optionen]
ps aux

ps (process status) zeigt Informationen über aktive Prozesse an – PID, CPU-Auslastung, Speichernutzung, Befehl und mehr.

Häufige Optionen

Option Beschreibung
aux Alle Prozesse (a) aller Benutzer (u) mit ausführlichen Informationen (x)
ef Alle Prozesse mit vollständigem Befehl (e) und Formatierung (f)
u <user> Prozesse eines bestimmten Benutzers anzeigen
--forest Prozesse als Baumstruktur anzeigen (Abhängigkeiten)
eo pid,comm,%cpu,%mem Bestimmte Spalten auswählen
Beispiele
ps aux # Alle Prozesse mit Details
ps aux | grep nginx # Prozesse filtern
ps u $USER # Nur eigene Prozesse
ps --forest # Prozesse als Baum anzeigen
Typische Ausgabe von ps aux:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.2 225k 8.5k ? Ss Mar01 0:14 /sbin/init
user 1234 2.5 1.0 1.2g 120m ? Ssl 10:30 0:45 /usr/bin/nginx
Tipp: ps aux | grep <prozess> ist die Standard-Methode, um nach einem bestimmten Prozess zu suchen. Filtern Sie mit grep -v grep den Grep-Befehl selbst heraus.

top / htop – Prozesse live überwachen

top / htop
top -u benutzer

top zeigt laufende Prozesse in Echtzeit an – sortiert nach CPU-Auslastung. htop ist die modernere, interaktivere Alternative mit Mausunterstützung.

Wichtige Tastenkürzel (top)

Taste Beschreibung
q Beenden
P Nach CPU-Auslastung sortieren
M Nach Speichernutzung sortieren
k Prozess beenden (PID eingeben)
u Nur Prozesse eines Benutzers anzeigen
H Threads anzeigen
Beispiele
top # Startet top
top -u www-data # Nur Prozesse des Benutzers www-data
htop # Interaktive Alternative (falls installiert)
Tipp: Installieren Sie htop – es bietet eine übersichtlichere Darstellung, Farben, Mausunterstützung und einfachere Prozessverwaltung (sudo apt install htop / sudo dnf install htop).

kill – Prozesse beenden

kill [Signal] PID
kill -9 1234

kill sendet Signale an Prozesse – standardmäßig das Signal SIGTERM (sanftes Beenden). Mit -9 wird SIGKILL gesendet (hartes Beenden).

Wichtige Signale

Signal Nummer Beschreibung
SIGTERM 15 Sanftes Beenden (Standard) – Prozess kann aufräumen
SIGKILL 9 Hartes Beenden – sofort, ohne Aufräumen
SIGINT 2 Interrupt – entspricht Ctrl+C
SIGSTOP 19 Prozess anhalten (pause)
SIGCONT 18 Prozess fortsetzen (nach SIGSTOP)
SIGHUP 1 Neuladen der Konfiguration (z.B. bei Webservern)
Beispiele
kill 1234 # SIGTERM senden (sanftes Beenden)
kill -9 1234 # SIGKILL (hartes Beenden)
kill -15 1234 # SIGTERM (explizit)
kill -HUP 5678 # Konfiguration neu laden (SIGHUP)
pkill -f "nginx" # Prozess nach Name beenden
killall firefox # Alle Firefox-Prozesse beenden
⚠️ Warnung: kill -9 (SIGKILL) beendet einen Prozess sofort, ohne ihm Zeit zum Aufräumen zu geben. Daten können verloren gehen. Verwenden Sie zuerst SIGTERM (ohne Option) und nur bei hartnäckigen Prozessen kill -9.

jobs, fg, bg – Jobs im Terminal verwalten

jobs / fg [Job-ID] / bg [Job-ID]
jobs  |  fg %1  |  bg %1

jobs zeigt Hintergrund-Jobs an. fg bringt einen Job in den Vordergrund, bg setzt einen gestoppten Job im Hintergrund fort.

Job-Status

Symbol Bedeutung
Running Job läuft (Vordergrund oder Hintergrund)
Stopped Job wurde pausiert (z.B. mit Ctrl+Z)
Done Job wurde beendet
Beispiele
sleep 300 # Befehl starten und mit Ctrl+Z pausieren
jobs # Alle Hintergrund-Jobs anzeigen
[1] + 1234 Stopped sleep 300
bg %1 # Job 1 im Hintergrund fortsetzen
fg %1 # Job 1 in den Vordergrund holen
disown %1 # Job von Shell trennen (läuft weiter nach Beenden der Shell)
Tipp: Mit Ctrl+Z pausieren Sie einen laufenden Vordergrund-Job. Mit bg können Sie ihn im Hintergrund weiterlaufen lassen – perfekt für lange Operationen.

nohup – Prozess unabhängig von der Shell ausführen

nohup Befehl [Optionen] &
nohup ./langes_script.sh &

nohup (no hangup) führt einen Befehl aus, der auch nach dem Beenden der Shell weiterläuft. Die Ausgabe wird in nohup.out gespeichert.

Beispiele
nohup ./script.sh & # Script im Hintergrund starten
nohup python3 analyse.py > output.log 2>&1 & # Mit eigener Log-Datei
tail -f nohup.out # Ausgabe live verfolgen
Tipp: Kombinieren Sie nohup mit & und leiten Sie die Ausgabe in eine eigene Datei um, um die Logs übersichtlich zu halten.

systemctl – Systemdienste verwalten

systemctl [Optionen] [Dienst]
systemctl status nginx

systemctl ist das Werkzeug zur Verwaltung von Systemdiensten – Starten, Stoppen, Neustarten und Statusabfrage von Diensten wie Webservern, Datenbanken und mehr.

Häufige Befehle

Befehl Beschreibung
status <dienst> Status eines Dienstes anzeigen
start <dienst> Dienst starten
stop <dienst> Dienst stoppen
restart <dienst> Dienst neu starten
reload <dienst> Konfiguration neu laden (ohne Neustart)
enable <dienst> Dienst beim Systemstart aktivieren
disable <dienst> Dienst beim Systemstart deaktivieren
list-units Alle aktiven Dienste anzeigen
list-unit-files Alle Dienst-Dateien anzeigen
Beispiele
systemctl status nginx # Status von Nginx anzeigen
systemctl start mysql # MySQL starten
systemctl restart apache2 # Apache neu starten
systemctl enable docker # Docker beim Booten aktivieren
systemctl list-units --type=service # Nur Dienste anzeigen
systemctl reload nginx # Konfiguration neu laden
Tipp: Nach Änderungen an Konfigurationsdateien können Sie oft systemctl reload statt restart verwenden – der Dienst bleibt verfügbar, die neue Konfiguration wird eingelesen.

Quick Summary

ps
Prozesse anzeigen
top
Live-Monitoring
kill
Prozesse beenden
jobs
Jobs anzeigen
fg/bg
Vordergrund/Hintergrund
nohup
Shell-unabhängig
systemctl
Systemdienste