Init-Systeme unter Linux – Von SysVinit bis systemd

Inhaltsverzeichnis

Nach Kernel und initramfs übernimmt das Init-System als erster Prozess im User-Space. Es startet Dienste, setzt Runlevel bzw. Targets um und bringt das System in den gewünschten Betriebszustand. Für LPIC-1 ist das Wissen über historische (SysVinit, Upstart) und aktuelle Systeme (systemd) essenziell.

SysVinit – das klassische Init

  • Nutze Runlevel 0–6 (z. B. 3 = Multi-User, 5 = Multi-User + GUI)
  • Konfiguration: /etc/inittab
  • Dienste starten über Skripte in /etc/rc?.d/
runlevel              
# zeigt aktuellen und vorherigen Runlevel

init 3                
# wechselt in Runlevel 3

Upstart – Übergangssystem

  • Von Ubuntu eingeführt (2006–2014)
  • Ereignis-basiert: Jobs starten bei Events (z. B. „Netzwerk verfügbar“)
  • Heute nicht mehr verbreitet, aber prüfungsrelevant
initctl list          
# zeigt aktive Jobs (Upstart)

systemd – moderner Standard

  • Heute Standard in fast allen Distributionen
  • Paralleler Start von Diensten, Abhängigkeitsauflösung
  • Verwendet Units (service, target, socket, timer …)
  • Runlevel wurden durch Targets ersetzt
systemctl get-default               
# zeigt Standard-Target

systemctl isolate multi-user.target 
# wechselt ins Multi-User-Target

systemctl list-units --type=service 
# listet aktive Services

Runlevel vs. Targets

Runlevelsystemd-Target
0poweroff.target
1rescue.target
3multi-user.target
5graphical.target
6reboot.target

Lerneinheit – Übungsfragen im LPIC-Stil

Frage 1 (Einzelauswahl)
Welches Init-System ist heute Standard in den meisten Linux-Distributionen?
A) SysVinit
B) Upstart
C) systemd
D) inetd

Frage 2 (Mehrfachauswahl)
Welche Runlevel-zu-Target-Zuordnungen sind korrekt?
A) Runlevel 3 = multi-user.target
B) Runlevel 5 = graphical.target
C) Runlevel 1 = rescue.target
D) Runlevel 6 = halt.target

Frage 3 (Befehlseingabe)
Zeige das Standard-Target auf einem systemd-System an.

Frage 4 (Einzelauswahl)
Welches Init-System war ereignisgesteuert und v. a. in frühen Ubuntu-Versionen im Einsatz?
A) SysVinit
B) Upstart
C) systemd
D) OpenRC

Frage 5 (Mehrfachauswahl)
Welche Befehle gehören zu systemd?
A) systemctl get-default
B) initctl list
C) systemctl isolate multi-user.target
D) runlevel

Lösungen & Begründungen

Frage 1: C) systemd. Heute fast überall Standard.

Frage 2: A), B), C). Runlevel 6 entspricht reboot.target, nicht halt.target.

Frage 3 (Musterlösung):

systemctl get-default

Zeigt z. B. „graphical.target“ oder „multi-user.target“ an.

Frage 4: B) Upstart. Es war ein Übergangssystem in Ubuntu.

Frage 5: A) und C) gehören zu systemd, B) ist Upstart, D) gehört zu SysVinit.

Mini-Lernkarte

  • SysVinit: Runlevel 0–6, /etc/inittab, rc-Skripte
  • Upstart: Ereignisgesteuert, historisch (Ubuntu)
  • systemd: Units + Targets, heute Standard
  • Befehle: runlevel, initctl, systemctl

Fazit

Das Init-System entscheidet, welche Dienste starten und in welchem Modus Linux läuft. Historisch gab es SysVinit und Upstart, heute ist systemd Standard. Wer die Unterschiede und Befehle kennt, kann Bootprobleme besser eingrenzen und den Systemzustand gezielt steuern – wichtig für die LPIC-1-Prüfung und für den Admin-Alltag.

Andreas Moor
Andreas Moor
@blog@andreas-moor.de

Hallo Fediverse, ich bin Andy!

Hier und auf meiner Website findest du mein akkumuliertes Linux-Sysadmin-Wissen, meine kleinen und größeren Projekte und die Tools, die ich nutze.

Viel Spaß beim stöbern, lesen und lernen! 🧑‍💻

236 Beiträge
16 Folgende