Ubuntu Dienste & Prozesse

systemctl · service · ps · top · kill · journalctl
Die wichtigsten Befehle für Dienste und Prozesse unter Ubuntu: systemctl · service · ps · top · kill · journalctl Ubuntu verwendet systemd als Init-System. Mit diesen Befehlen können Sie Dienste starten, stoppen, den Status prüfen und Prozesse überwachen – essenziell für die Server-Administration. Ubuntu-Tipp: Die meisten Service-Befehle benötigen sudo für Änderungen. systemctl ist die moderne Alternative zu service.

systemctl – Systemd-Dienste verwalten

systemctl [Optionen] [Befehl] [Dienst]
sudo systemctl status nginx

systemctl ist das Hauptwerkzeug für die Verwaltung von systemd-Diensten – starten, stoppen, neustarten, aktivieren und Statusabfrage.

Wichtige systemctl-Befehle

Befehl Beschreibung
sudo systemctl start <dienst> Dienst starten
sudo systemctl stop <dienst> Dienst stoppen
sudo systemctl restart <dienst> Dienst neustarten
sudo systemctl reload <dienst> Konfiguration neu laden (ohne Neustart)
sudo systemctl enable <dienst> Dienst beim Systemstart aktivieren
sudo systemctl disable <dienst> Dienst beim Systemstart deaktivieren
systemctl status <dienst> Status des Dienstes anzeigen
systemctl list-units Alle aktiven Dienste anzeigen
systemctl list-units --type=service Nur Service-Units anzeigen
systemctl list-unit-files Alle Dienst-Dateien anzeigen
Beispiele
sudo systemctl start nginx # Nginx starten
sudo systemctl stop mysql # MySQL stoppen
sudo systemctl restart apache2 # Apache neustarten
sudo systemctl reload nginx # Nginx-Konfiguration neu laden
sudo systemctl enable docker # Docker beim Booten aktivieren
systemctl status ssh # SSH-Status anzeigen
systemctl list-units --type=service --state=running # Laufende Dienste anzeigen
Typische Ausgabe von systemctl status nginx:
● nginx.service - A high performance web server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled)
Active: active (running) since Mon 2026-06-21 10:30:00 UTC
Process: 1234 ExecStart=/usr/sbin/nginx
Tipp: Nach Änderungen an Konfigurationsdateien können Sie systemctl reload statt restart verwenden – der Dienst bleibt verfügbar, die neue Konfiguration wird eingelesen.

service – Klassische Service-Verwaltung (SysVinit)

sudo service [Dienst] [Befehl]
sudo service nginx status

service ist der klassische Befehl für die Verwaltung von SysVinit-Diensten. Unter Ubuntu wird er oft für Kompatibilität mit älteren Skripten verwendet – systemctl ist die moderne Alternative.

Wichtige service-Befehle

Befehl Beschreibung
sudo service <dienst> start Dienst starten
sudo service <dienst> stop Dienst stoppen
sudo service <dienst> restart Dienst neustarten
sudo service <dienst> reload Konfiguration neu laden
sudo service <dienst> status Status anzeigen
sudo service --status-all Alle Dienste mit Status anzeigen
Beispiele
sudo service apache2 start # Apache starten
sudo service mysql stop # MySQL stoppen
sudo service nginx reload # Nginx-Konfiguration neu laden
sudo service --status-all # Alle Dienste anzeigen
Typische Ausgabe von sudo service --status-all:
[ + ] apache2
[ - ] mysql
[ + ] nginx
[ ? ] hwclock
Tipp: service --status-all zeigt schnell alle Dienste mit ihrem aktuellen Status. + = läuft, - = gestoppt, ? = unbekannter Status.

ps – Prozesse anzeigen

ps [Optionen]
ps aux

ps zeigt Informationen über aktive Prozesse an – PID, CPU-Auslastung, Speichernutzung und den ausführenden Befehl.

Häufige Optionen

Option Beschreibung
aux Alle Prozesse aller Benutzer mit ausführlichen Informationen
ef Alle Prozesse mit vollständigem Befehl
u <user> Prozesse eines bestimmten Benutzers anzeigen
--forest Prozesse als Baumstruktur anzeigen
eo pid,comm,%cpu,%mem Bestimmte Spalten auswählen
Beispiele
ps aux # Alle Prozesse mit Details
ps aux | grep nginx # Nginx-Prozesse filtern
ps u $USER # Nur eigene Prozesse
ps --forest # Prozesse als Baum anzeigen
ps eo pid,comm,%cpu,%mem,user # Ausgewählte Spalten
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
www 1234 2.5 1.0 1.2g 120m ? Ssl 10:30 0:45 /usr/sbin/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 [Optionen] / htop
top -u www-data

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

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 # Top starten
top -u www-data # Nur Prozesse von www-data
htop # Interaktive Alternative (falls installiert)
sudo apt install htop # htop installieren
Tipp: Installieren Sie htop – es bietet eine übersichtlichere Darstellung, Farben, Mausunterstützung und einfachere Prozessverwaltung (sudo apt install htop).

kill – Prozesse beenden

kill [Signal] PID
kill -15 1234

kill sendet Signale an Prozesse – standardmäßig 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 (sanftes Beenden)
kill -9 1234 # SIGKILL (hartes Beenden)
kill -15 1234 # SIGTERM (explizit)
kill -HUP 5678 # Konfiguration neu laden
pkill -f "nginx" # Prozess nach Name beenden
killall firefox # Alle Firefox-Prozesse beenden
⚠️ Warnung: kill -9 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.

journalctl – Systemd-Logs anzeigen

journalctl [Optionen]
journalctl -u nginx -f

journalctl ist das Logging-Tool von systemd – es zeigt Log-Nachrichten von Diensten und dem Systemkern an. Die moderne Alternative zu /var/log/.

Wichtige journalctl-Optionen

Option Beschreibung
-u <dienst> Logs eines bestimmten Dienstes anzeigen
-f Logs live verfolgen (tail -f)
-n 100 Letzte 100 Zeilen anzeigen
--since "2026-06-21 10:00:00" Logs seit einem bestimmten Zeitpunkt
--until "2026-06-21 12:00:00" Logs bis zu einem bestimmten Zeitpunkt
-p err Nur Fehler (emerg, alert, crit, err)
--since "1 hour ago" Logs der letzten Stunde
-k Kernel-Logs anzeigen (dmesg-Ersatz)
Beispiele
journalctl -u nginx # Nginx-Logs anzeigen
journalctl -u mysql -f # MySQL-Logs live verfolgen
journalctl -n 50 # Letzte 50 Log-Einträge
journalctl --since "1 hour ago" # Logs der letzten Stunde
journalctl -p err # Nur Fehlermeldungen
journalctl -k # Kernel-Logs anzeigen
Typische Ausgabe von journalctl -u nginx:
Jun 21 10:30:15 server01 systemd[1]: Starting nginx...
Jun 21 10:30:15 server01 nginx[1234]: nginx started
Jun 21 10:30:16 server01 systemd[1]: Started nginx.
Tipp: journalctl -u dienst -f ist die moderne Alternative zu tail -f /var/log/dienst.log – perfekt für die Echtzeit-Überwachung von Diensten.

Quick Summary

systemctl
Systemd-Dienste verwalten
service
Klassische Service-Verwaltung
ps
Prozesse anzeigen
top / htop
Live-Monitoring
kill
Prozesse beenden
journalctl
Systemd-Logs