Linux folgt der Unix-Idee: Viele spezialisierte Prozesse (Daemons/Dienste) bilden gemeinsam das System. Welche davon aktiv sind, hängt vom Einsatzzweck ab. Damit Administratoren Dienste gezielt starten/stoppen, Zustände wechseln und Systeme kontrolliert herunterfahren können, bieten Distributionen Service-Manager an: klassisch SysVinit (Runlevel), heute überwiegend systemd (Units/Targets). Dieser Beitrag fasst die LPI-Lektion 101.3 vollständig, praxisnah und prüfungsorientiert zusammen.
Warum wichtig für Sysadmin
In Betrieb, Wartung und Incident-Response willst du Dienste ohne Reboot neu laden, gezielt in einen Single-User-Modus wechseln, sauber herunterfahren und Benutzer rechtzeitig warnen. Wer Runlevel/Targets, systemctl-Kommandos und den Shutdown-Pfad beherrscht, spart Ausfallzeit – ob On-Prem, in VMs oder in der Cloud.
SysVinit: Runlevel und /etc/inittab
SysVinit verwaltet Runlevel (0–6) als vordefinierte Systemzustände. Typische Zuordnung:
- 0: halt (Herunterfahren)
- 1, s, single: Einzelbenutzer-/Wartungsmodus, ohne Netzwerk
- 2/3/4: Mehrbenutzer (Konsole/Netzwerk), 2 und 4 je nach Distro selten genutzt
- 5: wie 3, plus grafische Anmeldung
- 6: reboot
Der Service-Manager ist /sbin/init (PID 1). Er liest /etc/inittab (Format id:runlevels:action:process) und lädt pro Runlevel die passenden Skripte aus /etc/init.d/ über verlinkte Verzeichnisse /etc/rcX.d/.
# Aktuellen Runlevel anzeigen (vorheriger + aktueller)
$ runlevel
N 3
# In den Single-User-Mode wechseln (Runlevel 1)
$ sudo telinit 1
# Nach Änderung der /etc/inittab neu laden
$ sudo telinit q
systemd: Units, Targets und systemctl
Moderne Distributionen nutzen systemd. Es verwaltet Units (Objekte) unterschiedlicher Typen, u. a. service, socket, device, mount, automount, target, snapshot. Zentrale Befehle mit systemctl:
# Dienste steuern
sudo systemctl start|stop|restart sshd.service
systemctl status sshd.service
systemctl is-active sshd.service
sudo systemctl enable|disable sshd.service
systemctl is-enabled sshd.service
# Ziele (Targets) wie Runlevel-Gruppen
systemctl list-unit-files --type=target
sudo systemctl isolate multi-user.target
# Standardziel setzen/anzeigen
sudo systemctl set-default multi-user.target
systemctl get-default
Unit-Dateien liegen distributionabhängig meist unter /lib/systemd/system/. Aktive/geladene Units der laufenden Sitzung listet systemctl list-units.
Energiesteuerung mit systemd
# Neustart / Ausschalten (Root-Rechte erforderlich)
sudo systemctl reboot
sudo systemctl poweroff
Weitere Power-Ereignisse (Suspend/Hibernate) werden über systemd/logind gesteuert; Konfiguration in /etc/systemd/logind.conf bzw. logind.conf.d/.
Upstart (historisch)
Ehemals in Ubuntu verbreitet, heute weitgehend durch systemd ersetzt.
# Dienste auflisten / Status / Start / Stop
initctl list
status tty6
sudo start tty6
sudo stop tty6
Herunterfahren und Neustart: shutdown, wall und Koordination
Der klassische Befehl shutdown benachrichtigt angemeldete Nutzer, blockiert neue Logins, sendet SIGTERM und anschließend SIGKILL und initiiert den angeforderten Zustand. Syntax:
# Grundform
shutdown [OPTIONEN] ZEIT [NACHRICHT]
# Beispiele
sudo shutdown -r +5 "Reboot in 5 Minuten"
sudo shutdown -h now "Sofort herunterfahren"
sudo shutdown -c # geplanten Shutdown/Restart abbrechen
# Nachricht an alle TTYs senden
echo "Wartung in 15 Minuten" | sudo wall
Geführte Übungen (mit Lösung)
- Wie System mit telinit neu starten? –
telinit 6 - Was passiert mit /etc/rc1.d/K90network beim Wechsel zu Runlevel 1? – K-Prefix = beenden
- Prüfen, ob sshd.service läuft (systemd)? –
systemctl status sshd.serviceodersystemctl is-active sshd.service - Autostart von sshd.service aktivieren (systemd)? –
sudo systemctl enable sshd.service
Offene Übungen (mit Lösung)
- SysV: initdefault=3 gesetzt, System startet trotzdem in Runlevel 1. Warum? – Kernelparameter
1oderSüberschreibt Standard - Worauf zeigt /sbin/init in systemd-Systemen? – Link auf
/lib/systemd/systemd - Standardsystemziel unter systemd verifizieren? –
systemctl get-defaultoder Link/etc/systemd/system/default.targetprüfen - Geplanten Neustart via shutdown abbrechen? –
shutdown -c
Zusammenfassung
- SysVinit: Runlevel 0–6,
/etc/inittab,/etc/init.d,/etc/rcX.d,runlevel,telinit. - systemd: Units/Targets,
systemctl(start/stop/restart/status, enable/disable, isolate, get-default, set-default). - Upstart:
initctl,start,stop,status(historisch). - Shutdown-Pfad:
shutdown(Zeit & Nachricht),-r/-h,-c; Nutzer mitwallinformieren.
Wissensprüfung: 10 Multiple-Choice-Fragen
- Welcher Runlevel steht bei SysV für einen Neustart?
- A) 0
- B) 1
- C) 3
- D) 6
- Was bewirkt ein Link K… in
/etc/rc1.d/?- A) Start
- B) Stop
- C) Reload
- D) Aktivieren
- Welcher Befehl wechselt unter systemd live in den Mehrbenutzer-Modus ohne GUI?
- A)
telinit 3 - B)
init 3 - C)
systemctl isolate multi-user.target - D)
systemctl default
- A)
- Womit prüfst du, ob
sshd.servicebeim Booten startet?- A)
systemctl is-enabled sshd.service - B)
systemctl is-active sshd.service - C)
systemctl status - D)
journalctl -u sshd
- A)
- Wo liegen üblicherweise Unit-Dateien?
- A)
/etc/init.d/ - B)
/lib/systemd/system/ - C)
/etc/inittab - D)
/etc/rc.local
- A)
- Wie Abbruch eines geplanten Shutdowns?
- A)
shutdown --abort - B)
shutdown -c - C)
systemctl cancel - D)
halt -c
- A)
- Wie sofortige Abschaltung mit Benachrichtigung?
- A)
poweroff - B)
halt - C)
shutdown -h now "Wartung" - D)
reboot -h now
- A)
- Welcher Befehl zeigt das Standard-Target unter systemd?
- A)
systemctl default - B)
systemctl get-default - C)
systemctl show-default - D)
systemctl current
- A)
- Was bewirkt
systemctl enable?- A) Startet sofort
- B) Markiert für Autostart
- C) Lädt Unit neu
- D) Prüft Laufzeitstatus
- Welcher Mechanismus entspricht unter systemd am ehesten einem Runlevel?
- A)
service-Units - B)
socket-Units - C)
target-Units - D)
mount-Units
- A)
Antworten mit Begründung
- D – Runlevel 6 ist Reboot.
- B – K-Links beenden Services beim Betreten des Runlevels.
- C –
isolate multi-user.target(wie Runlevel 3). - A –
is-enabledprüft Boot-Autostart. - B – Typischer Pfad (distroabhängig).
- B –
shutdown -cbricht ab. - C –
-h nowmit Nachricht. - B – Zeigt das Standard-Target.
- B – Aktiviert Autostart (Wants-Symlink).
- C – Targets bündeln Units zu Systemzuständen.
