Inhalt dieses Kapitels
- 2.1Runlevels — die klassische Welt
- 2.2systemd — der moderne init
- 2.3systemctl · Target-Unit (Zustände wechseln)
- 2.4systemctl · Service-Unit (Dienste steuern)
- 2.5Herunterfahren & Neustarten
- 2.6Vorab fürs Lab: Logs lesen mit journalctl
- 🧪Lab 3.2 — Targets & Services beherrschen
- 2.7Typische Anfänger-Fehler
- 🎯Kontrollfragen zum Kapitel
Runlevels — die klassische Welt
PflichtIn der klassischen Unix-Welt (und in Linux bis etwa 2015) gab es das Konzept der Runlevels: Sieben definierte System-Zustände, in die der Computer nach dem Boot gebracht werden konnte. Heute (mit systemd) sind sie offiziell überholt — aber sie sind in jeder Prüfung Thema, und du musst die Mapping-Tabelle können.
Die klassische Runlevel-Tabelle
| Runlevel | Bedeutung | systemd-Target (modern) |
|---|---|---|
| 0 | System herunterfahren (Halt) | poweroff.target |
| 1 | Single-User-Modus (Rescue) | rescue.target |
| 2 | Multi-User, ohne Netzwerk | multi-user.target |
| 3 | Multi-User, ohne GUI (Server-Standard) | multi-user.target |
| 4 | Benutzerdefiniert (selten genutzt) | (je nach Distro) |
| 5 | Multi-User mit GUI | graphical.target |
| 6 | System neu starten (Reboot) | reboot.target |
- Runlevel 0 = Shutdown (System aus)
- Runlevel 1 = Rescue (für Notfälle, Single User)
- Runlevel 3 = Server-Normal (Multi-User, kein GUI)
- Runlevel 5 = Desktop-Normal (Multi-User mit GUI)
- Runlevel 6 = Reboot (System neustart)
Die Endpunkte (0 und 6) sind die einprägsamen: 0 = aus, 6 = restart. Dazwischen: 3 = Server (am häufigsten in der Praxis), 5 = Desktop. Den Rest brauchst du selten.
systemd — der moderne init
Pflichtsystemd hat seit 2015 das alte SysV-init in fast allen großen Distributionen ersetzt. Es ist der erste Prozess, den der Kernel startet (PID 1) und der Vater aller anderen Prozesse. Es ist viel mehr als nur ein init — es ist ein Service-Manager.
Alles ist eine Unit
Das wichtigste Wort in der systemd-Welt heißt Unit. Eine Unit ist nichts Magisches — es ist eine einfache Textdatei, die systemd sagt: „Hier ist etwas, das du verwalten sollst." Ein Service, ein Target, ein Mount-Point, ein Timer — alles sind Units. Sie unterscheiden sich nur durch die Endung.
| Unit-Typ | Endung | Wofür? |
|---|---|---|
| Service | .service | ein laufendes Programm (sshd, httpd, NetworkManager) |
| Target | .target | ein System-Zustand (multi-user, graphical, rescue) |
| Mount | .mount | ein Dateisystem-Mountpoint |
| Timer | .timer | zeitgesteuerter Trigger (Cron-Ersatz) |
| Socket | .socket | Netzwerk- oder Unix-Socket |
Targets vs. Services — die zwei, die du täglich brauchst
Targets sind System-Zustände — wie die alten
Runlevels. „multi-user.target" bedeutet: das System ist bereit,
mehrere User können sich einloggen, Services laufen, aber keine grafische
Oberfläche. „graphical.target" bedeutet: zusätzlich noch die GUI.
Services sind einzelne Programme/Dienste: der
SSH-Server (sshd.service), der Webserver
(httpd.service), der Netzwerk-Manager
(NetworkManager.service). Du kannst sie einzeln
starten, stoppen, aktivieren
(= bei Boot mitstarten) oder deaktivieren.
Beide werden mit einem einzigen Werkzeug gesteuert:
systemctl.
Wo leben Unit-Dateien?
systemd schaut an zwei Stellen nach Unit-Dateien:
| Pfad | Inhalt |
|---|---|
/usr/lib/systemd/system/ | Units, die mit Paketen kommen (z. B. sshd.service von openssh-server). Hier nicht editieren! Wird beim Paket-Update überschrieben. |
/etc/systemd/system/ | Eigene Units & Anpassungen. Wenn hier eine Datei mit gleichem Namen liegt wie unter /usr/lib/..., gewinnt /etc/. |
Wenn du wissen willst, was ein Service wirklich macht, schaust du in seine Unit-Datei. Beispiel — die SSH-Server-Unit ansehen:
cat /usr/lib/systemd/system/sshd.service
Du siehst dann etwa diese Struktur (gekürzt):
[Unit]
Description=OpenSSH server daemon
[Service]
Type=notify
ExecStart=/usr/sbin/sshd -D $OPTIONS
ExecReload=/bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target
Drei Sektionen, drei Aufgaben:
[Unit]— Beschreibung, was die Unit überhaupt ist (Description, Dokumentation, …)[Service]— wie wird der Dienst gestartet, neu geladen, beendet (welcher Befehl, mit welchen Parametern)[Install]— wann soll der Dienst aktiviert werden?WantedBy=multi-user.targetheißt: wenn jemandsystemctl enable sshdaufruft, soll er beim Erreichen des multi-user.target gestartet werden.
systemd ist keine Black Box. Hinter jedem
systemctl start xyz steht eine simple Textdatei, die du lesen
und verstehen kannst. Wenn ein Service nicht startet, schaust du in seine
Unit-Datei — und in seine Logs (gleich mehr dazu).
▶ Tiefer einsteigen: Warum war systemd so umstritten?
Als systemd 2010 vorgestellt wurde, gab es heftige Debatten in der Linux-Community. Vorher: SysV-init startete Services einzeln, nacheinander, mit Shell-Skripten. Simpel, gut zu debuggen, aber langsam (10–30 Sekunden Boot-Zeit war normal).
systemd dagegen: startet Services parallel, kümmert
sich um Abhängigkeiten, hat eingebautes Logging
(journalctl), behandelt Timer (Cron-Ersatz), Mountpoints,
Sockets — alles in einem. Dadurch: Boot in 3–5 Sekunden.
Kritiker: systemd macht zu viel, ist zu komplex, widerspricht dem Unix-Prinzip „eine Sache, dafür gut". Befürworter: moderne Hardware und Services brauchen eben moderne Lösungen. Heute (2026) ist die Debatte praktisch entschieden: systemd ist Standard auf allen großen Distributionen außer ein paar puristischen (Devuan, Alpine, Gentoo).
systemctl · Target-Unit (Zustände wechseln)
PflichtMit systemctl und Target-Befehlen kontrollierst du den
gesamten System-Zustand: GUI an, GUI aus, Rescue-Modus,
Reboot.
Die wichtigsten Target-Befehle
| Befehl | Wirkung |
|---|---|
systemctl get-default | Zeigt das default Target (welches beim Boot angefahren wird) |
sudo systemctl set-default [TARGET] | Default Target ändern (wirkt erst beim nächsten Boot) |
sudo systemctl isolate [TARGET] | Sofort zum Target wechseln (ohne Reboot!) |
systemctl list-units --type=target | Alle aktiven Targets anzeigen |
telinit [0-6] | Klassischer Befehl, wechselt zum Runlevel (Wrapper für isolate) |
runlevel | Aktuellen "Runlevel" anzeigen (Legacy-Befehl) |
# Aktuelles Default-Target anzeigen
systemctl get-default
# → multi-user.target (auf Minimal-Installation)
# oder graphical.target (auf Desktop-Installation)
# Default auf graphical setzen (wirkt beim NÄCHSTEN Boot)
sudo systemctl set-default graphical.target
# SOFORT zu multi-user wechseln (ohne Reboot)
sudo systemctl isolate multi-user.target
# Über Runlevel-Nummer (Klassik)
sudo telinit 3 # entspricht multi-user
sudo telinit 5 # entspricht graphical
sudo telinit 6 # neu starten
sudo telinit 0 # herunterfahren
set-default ändert das Target, das beim
nächsten Boot angefahren wird. Jetzt
passiert nichts.
isolate wechselt das Target
sofort — aber nur für die aktuelle Sitzung. Beim
nächsten Boot ist alles wieder wie in get-default
steht.
Beste Praxis: erst isolate testen
(kein Reboot nötig), wenn alles funktioniert, mit
set-default dauerhaft setzen.
systemctl · Service-Unit (Dienste steuern)
PflichtHier wirst du als Admin täglich arbeiten: einzelne Dienste starten, stoppen, prüfen.
Die wichtigsten Service-Befehle
| Befehl | Wirkung |
|---|---|
sudo systemctl status [DIENST] | Status anzeigen (läuft, gestoppt, Fehler?) |
sudo systemctl start [DIENST] | Dienst jetzt starten |
sudo systemctl stop [DIENST] | Dienst jetzt stoppen |
sudo systemctl restart [DIENST] | Dienst neu starten (stop + start) |
sudo systemctl reload [DIENST] | Config neu laden (ohne Restart, wenn Dienst es unterstützt) |
sudo systemctl enable [DIENST] | Dienst beim Boot mitstarten (dauerhaft) |
sudo systemctl disable [DIENST] | Beim Boot nicht mehr starten |
sudo systemctl is-active [DIENST] | Schnell-Check: läuft? (gibt nur „active" oder „inactive" zurück) |
sudo systemctl is-enabled [DIENST] | Schnell-Check: wird beim Boot gestartet? |
sudo journalctl -u [DIENST] | Logs des Dienstes anzeigen |
# Status SSH-Server
sudo systemctl status sshd
# ● sshd.service - OpenSSH server daemon
# Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled)
# Active: active (running) since Mon 2026-05-27 08:15:23 CEST
# ...
# Starten / stoppen / neustarten
sudo systemctl start sshd
sudo systemctl stop sshd
sudo systemctl restart sshd
# Beim Boot mitstarten (dauerhaft aktivieren)
sudo systemctl enable sshd
# Bei Boot NICHT mehr mitstarten
sudo systemctl disable sshd
# Beides in einem: enable + start jetzt
sudo systemctl enable --now sshd
start = Dienst jetzt anwerfen
(aber: beim nächsten Boot ist er wieder aus, falls nicht enabled).
enable = bei jedem Boot automatisch
mitstarten (aber: er läuft jetzt noch nicht, wenn nicht zusätzlich
start).
Kombi-Trick: systemctl enable --now sshd
macht beides in einem Befehl — sofort starten UND beim Boot
aktivieren.
▶ Was passiert technisch bei systemctl enable?
Wenn du sudo systemctl enable sshd ausführst, legt systemd
einen Symlink an — und sonst nichts. Schau selbst:
ls -l /etc/systemd/system/multi-user.target.wants/
# sshd.service -> /usr/lib/systemd/system/sshd.service
Der Symlink steht in einem Verzeichnis mit der Endung
.target.wants/. Übersetzt: „Das multi-user.target möchte
diesen Service haben." Wenn das Target beim Boot aktiviert wird, startet
systemd alle Services, die im .wants/-Verzeichnis stehen.
Diesen Mechanismus kennst du aus Tag 2 (Soft Links) wieder — ein Verzeichnis voller Symlinks, die auf die echten Unit-Dateien zeigen. Mehr Magie steckt nicht dahinter.
Herunterfahren & Neustarten
PraxisEs gibt mehrere Wege, ein Linux-System herunterzufahren oder neu zu
starten. Alle modernen sind systemctl-Befehle — die
klassischen wie shutdown und reboot
funktionieren aber weiterhin (sind Wrapper).
Herunterfahren
| Befehl | Wirkung |
|---|---|
sudo shutdown | Herunterfahren in 1 Minute (Default) |
sudo shutdown now | Sofort herunterfahren |
sudo shutdown +5 | In 5 Minuten herunterfahren |
sudo shutdown -c | Geplanten Shutdown abbrechen |
sudo poweroff | Sofort herunterfahren (wie Stromtrennung) |
sudo systemctl poweroff | Moderner Weg — sofort herunterfahren |
sudo halt | Anhalten ohne Strom abschalten (Legacy) |
sudo telinit 0 | Klassik-Variante: Runlevel 0 = halt |
Neustarten
| Befehl | Wirkung |
|---|---|
sudo reboot | Sofort neustarten |
sudo shutdown -r now | Sofort neustarten |
sudo shutdown -r +5 | In 5 Minuten neustarten |
sudo systemctl reboot | Moderner Weg — sofort neustarten |
sudo telinit 6 | Klassik-Variante: Runlevel 6 = reboot |
Auf Servern niemals einfach
sudo poweroff. Stattdessen:
sudo shutdown +10 "Wartung — Server fährt in 10 Min runter"— User werden gewarnt- Vorher prüfen: Wer ist noch eingeloggt?
who - Wichtige Dienste sauber stoppen (
systemctl stop ...) - Mit
sudo shutdown -ckannst du einen geplanten Shutdown abbrechen
Vorab fürs Lab: Logs lesen mit journalctl
Kurz▶ Vorab: Was ist journalctl?
Wenn ein Service nicht startet oder sich seltsam verhält, willst du
wissen warum. Auf modernen Linux-Systemen schreibt systemd
alle Service-Meldungen in das journal — eine zentrale,
binäre Log-Datenbank unter /var/log/journal/.
Gelesen wird das journal nicht mit cat oder less
(es ist binär), sondern mit journalctl. Die wichtigsten
Varianten:
| Befehl | Wirkung |
|---|---|
journalctl | alle Log-Meldungen seit Systemstart (q zum Beenden) |
journalctl -u sshd | nur Meldungen des sshd-Services |
journalctl -u sshd -n 20 | nur die letzten 20 Zeilen |
journalctl -u sshd -f | live mitschreiben (follow), bis Strg+C |
journalctl -p err | nur Fehlermeldungen (priority error) |
Im Lab gleich brauchst du nur journalctl -u sshd -n 20.
Mehr ist für heute nicht nötig — das ist eher Stoff für ein Logging-Modul
später.
Lab 3.2 — Targets & Services beherrschen
Lab · 45 minHallo Tim,
nächste Aufgabe: systemctl beherrschen. Das ist wirklich das Werkzeug, das du nächste Woche jeden Tag benutzen wirst. Du sollst:
- Eine Unit-Datei lesen und verstehen (sshd.service)
- Den SSH-Service live steuern — ein Wartungsfenster simulieren
- Aus deiner Minimal-Installation einen Desktop machen (graphical.target isolieren) — ohne Reboot
Das letzte ist der „Aha!"-Moment des Tages. Aus einem Server-Terminal wird per Befehl eine grafische Oberfläche.
— Markus
Aufbau: Drei Phasen, ca. 45 min insgesamt — mit aufklappbaren Hints und Lösung pro Phase.
Mach jetzt einen Snapshot vor-targets.
Falls etwas mit dem Target-Wechsel schief geht (z. B. Anmeldung im
rescue.target verweigert), bist du in Sekunden wieder da.
Falls noch nicht gestartet (Trainer hat das normalerweise zu Beginn des Tages gemacht), starte JETZT in einem zweiten Terminal (oder Ctrl+Alt+F3 für Konsole, dann zurück mit Ctrl+Alt+F1):
sudo dnf groupinstall "Server with GUI" -y
Das dauert 5–15 Min und läuft im Hintergrund. Du kannst Teil A und Teil B des Labs in der Zwischenzeit machen.
„Tim, schau dir mal sshd.service genau an. Wenn du das verstanden hast, verstehst du systemd zur Hälfte." — Markus
Öffne die Unit-Datei des SSH-Servers und erklär in eigenen Worten, was
die Sektionen [Unit], [Service] und
[Install] tun. Am Ende sollst du beantworten können: „Wenn ich
systemctl enable sshd mache — woher weiß systemd, dass das beim
Boot starten soll?"
💡 Hint 1 — Wo finde ich Unit-Dateien?
Paket-Units liegen unter /usr/lib/systemd/system/, eigene
Anpassungen unter /etc/systemd/system/. Die sshd-Unit kommt vom
Paket — also im ersten Pfad.
💡 Hint 2 — Welcher Befehl liest die Datei?
cat /usr/lib/systemd/system/sshd.service — eine ganz normale
Textdatei, die du mit cat oder less lesen kannst.
💡 Hint 3 — Welche Zeile macht beim Boot-Start die Magie?
Schau in die [Install]-Sektion. Die Zeile
WantedBy=multi-user.target sagt: beim enable wird der
Dienst dem multi-user.target zugeordnet und startet, sobald dieses erreicht
wird.
cat /usr/lib/systemd/system/sshd.service
# [Unit] → Description=OpenSSH server daemon (was ist das?)
# [Service] → ExecStart=/usr/sbin/sshd -D ... (wie wird gestartet?)
# [Install] → WantedBy=multi-user.target (wann aktiviert?)
Erklärung:
[Unit] beschreibt, was die Unit ist.
[Service] sagt, wie der Dienst
gestartet/neu geladen/beendet wird. [Install] legt fest,
wann er aktiviert wird: WantedBy=multi-user.target ist
genau die Zeile, die beim systemctl enable sshd dafür sorgt,
dass ein Symlink im multi-user.target.wants/-Verzeichnis
angelegt wird — und der Dienst dadurch beim Boot mitstartet.
„Tim, ich brauch ein Wartungsfenster auf dem Test-Server. Stopp den SSH-Dienst für 5 Minuten und prüf danach, dass er sauber wieder läuft. Schau dir auch kurz die Logs an, ob beim Stoppen alles glatt lief." — Markus
Steuere den SSH-Dienst mit systemctl: Status prüfen (vorher),
stoppen, Status erneut prüfen, wieder starten — und am Ende einen Blick in
die Logs. Finde selbst heraus, welche Befehle du brauchst.
💡 Hint 1 — Welche systemctl-Befehle brauche ich überhaupt?
Vier reichen: systemctl status sshd,
systemctl stop sshd, systemctl start sshd und
systemctl restart sshd. Status braucht kein sudo, die anderen
drei schon.
💡 Hint 2 — Wie sehe ich auf einen Blick, ob ein Service läuft?
Statt den langen Status zu lesen: systemctl is-active sshd
(gibt active / inactive) und
systemctl is-enabled sshd (startet er beim Boot?).
💡 Hint 3 — Wo sehe ich die Logs?
Mit dem journalctl-Befehl von oben:
journalctl -u sshd -n 20 zeigt die letzten 20 Zeilen des
sshd-Services — inklusive der Stop/Start-Meldungen.
# Status vorher
systemctl status sshd # Active: active (running)
# Wartungsfenster: stoppen
sudo systemctl stop sshd
systemctl is-active sshd # inactive
# ... 5 Minuten Wartung ... dann wieder starten
sudo systemctl start sshd
systemctl is-active sshd # active
systemctl is-enabled sshd # enabled
# Sauber wieder oben? Logs der letzten Minuten ansehen
journalctl -u sshd -n 20
Aha-Moment: Nach einem
start (oder restart) aktualisiert sich der
„Active: active (running) since …"-Zeitstempel im Status — so siehst du
sofort, dass der Dienst frisch hochgefahren ist. Die ganze
Service-Kontrolle ist einheitlich mit systemctl, egal ob
SSH, Webserver oder Firewall.
Der Aha-Moment des Tages. Du verwandelst deine schwarze Minimal-Installation in einen grafischen Desktop — per Befehl, ohne Reboot. Dann zurück.
„Tim, manche Kollegen brauchen kurzfristig eine GUI für ein Tool. Du sollst zeigen, dass das mit systemd in 5 Sekunden geht — ohne den Server runterzufahren." — Markus
Wechsle live (ohne Reboot) ins
graphical.target, schau dich im Desktop kurz um, und komm
wieder zurück ins multi-user.target. Setz am Ende das Default
sauber wieder auf Minimal zurück.
💡 Hint 1 — Ist die GUI-Installation schon fertig?
Die GUI (Server with GUI) sollte seit Tagesbeginn im
Hintergrund installiert worden sein. Ob dnf noch läuft, prüfst
du ohne Prozess-Tools so:
ls /run/dnf.pid 2>/dev/null — existiert die Datei, läuft
dnf noch; kommt nichts zurück, ist es fertig. (Alternativ: in das Terminal
schauen, in dem du dnf groupinstall gestartet hast.) Falls noch
gar nicht installiert: sudo dnf groupinstall "Server with GUI" -y
und 5–15 Min warten.
💡 Hint 2 — Wie wechsle ich live, ohne Reboot?
sudo systemctl isolate graphical.target wechselt das System
sofort in den angegebenen Zustand — kein Reboot nötig.
Zurück geht's mit sudo systemctl isolate multi-user.target.
💡 Hint 3 — Unterschied set-default vs. isolate?
isolate wirkt jetzt sofort (aktuelle
Sitzung), set-default bestimmt den Zustand beim
nächsten Boot. Beides nutzen: isolate zum Live-Testen,
set-default um den Boot-Zustand dauerhaft festzulegen.
# 1) Ist die GUI-Installation fertig? (ohne Prozess-Tools)
ls /run/dnf.pid 2>/dev/null && echo "dnf läuft noch" || echo "fertig"
# Falls noch nicht installiert:
sudo dnf groupinstall "Server with GUI" -y # 5-15 Min
# 2) LIVE in den grafischen Modus wechseln (ohne Reboot!)
sudo systemctl isolate graphical.target
# → Bildschirm wird schwarz, dann grafischer Login. Aha!
# 3) Im Desktop: Terminal öffnen, aktuelles Target prüfen
systemctl get-default
# 4) Zurück in den Server-Modus
sudo systemctl isolate multi-user.target
# 5) WICHTIG: Default sauber auf Minimal zurücksetzen,
# sonst startet die VM künftig immer mit GUI (frisst RAM)
sudo systemctl set-default multi-user.target
Aha-Moment: Du hast aus
einer „Server-Box" einen „Desktop" gemacht — und wieder zurück,
ohne Reboot. isolate wechselt nur den
aktuellen Zustand, set-default bestimmt den
nächsten Boot. Deshalb am Ende
set-default multi-user.target — damit der Server nach dem
nächsten Neustart wieder schlank im Minimal-Modus hochkommt.
- Zweiten Service erkunden: Schau dir den Status von
firewalldan. Was zeigt der Status? Ist der Service aktiv (active) und enabled (startet er beim Boot)? Nicht starten oder stoppen — Firewall-Konfiguration kommt in einem späteren Modul. Heute nur lesen. - Boot-Performance: Welche Services brauchen am
längsten beim Boot? Befehl:
systemd-analyze blame. Hängt das vom Target ab? (Tipp: nach Wechsel zu graphical werden mehr Services geladen.) - Geplantes Herunterfahren: Plane einen Shutdown in 5
Minuten mit einer Nachricht, dann breche ihn ab.
Tipp:
shutdown +5 "Wartung..."und direkt danachshutdown -czum Abbrechen. Achtung: Wenn du das Abbrechen vergisst, fährt deine VM in 5 Minuten herunter — also direkt nacheinander eingeben. - Failed Services: Gibt es Services, die nicht starten
wollen?
systemctl list-units --state=failed. Hoffentlich keiner — aber das ist die erste Stelle, an der man bei Boot-Problemen schaut.
# 20) Firewalld — nur Status lesen, NICHT starten/stoppen
systemctl status firewalld
# Zeigt: active (running) oder inactive (dead), enabled/disabled.
# Firewall-Konfiguration kommt in einem späteren Modul.
# 21) Boot-Performance
systemd-analyze blame
# Liste sortiert nach Startdauer
# 22) Geplanter Shutdown + Abbruch
sudo shutdown +5 "Wartung läuft an"
# → Broadcast-Nachricht an alle eingeloggten User
sudo shutdown -c
# → "Shutdown scheduled ... has been cancelled"
# 23) Failed Services
systemctl list-units --state=failed
# Hoffentlich: "0 loaded units listed"
Mega! Du hast jetzt systemctl in der Hand — das
wichtigste Werkzeug eines Linux-Admins. Du kannst Services steuern,
Targets wechseln, sogar einen Desktop „herbeizaubern" — alles ohne
Reboot. Das ist Senior-Admin-Niveau für so viel
Eigenwissen.
Typische Anfänger-Fehler
Vorsicht„Dienst läuft, alles OK!" → Reboot → Dienst läuft nicht mehr.
Grund: start ist nur für jetzt. Für „bei Boot
mitstarten" brauchst du enable. Beste Praxis:
enable --now.
systemctl isolate multi-user → Fehler. Korrekt:
systemctl isolate multi-user.target. Die Endung
.target nicht vergessen.
„Ich habe set-default graphical gemacht und nichts passiert!" —
Richtig, set-default wirkt erst beim nächsten Boot
oder mit zusätzlichem isolate.
Alle Service-Änderungen brauchen sudo:
start, stop, enable,
disable, isolate, set-default.
Nur status, is-active,
list-units gehen ohne sudo.
Kontrollfragen zum Kapitel
Selbst-Check- Wofür wird Runlevel 0 verwendet?
- Welches systemd-Target entspricht Runlevel 5?
- Welche Sektion einer
.service-Unit-Datei steuert, ob ein Dienst beim Boot startet — und welche Zeile darin? - Was ist der Unterschied zwischen
systemctl isolateundsystemctl set-default? - Was ist der Unterschied zwischen
startundenable? - Welche zwei Befehle (Auswahl: shutdown, reboot, poweroff, telinit, systemctl) können das System ausschalten?
- Runlevel 0 = System herunterfahren (Shutdown).
- Runlevel 5 =
graphical.target - Die
[Install]-Sektion, konkret die ZeileWantedBy=multi-user.target. Beimsystemctl enablewird daraus ein Symlink immulti-user.target.wants/-Verzeichnis angelegt. isolatewechselt das Target sofort in der laufenden Sitzung (kein Reboot).set-defaultlegt fest, welches Target beim nächsten Boot angefahren wird — jetzt passiert nichts.startstartet den Dienst sofort (aber nicht beim nächsten Boot).enablemacht ihn boot-persistent (startet aber nicht jetzt). Kombi:enable --now.shutdownundsystemctl poweroff. (auchpoweroffundtelinit 0wären richtig)