AA_start_dotshock_123rf_7207529.jpg

© Dotshock, 123RF

Systemd und SysVinit in der Praxis

Durchstarten

Beim Wettstreit zwischen dem klassischen Init und dem recht jungen Systemd trifft jahrzehntelang gewachsene Technik auf neue Konzepte.

Direkt nach dem Booten des Kernels startet ein Dienst, der das restliche System und den weiteren Betrieb bis zum Herunterfahren begleitet. Er trägt stets die Prozess-ID 1 und hörte bislang auf Linux-Rechnern in der Regel auf den Namen init; das System dahinter nannte sich SysVinit [1]. Mit Systemd [2] drängt ein neues Programm an die gleiche Stelle. Allerdings gibt sich der Neue nicht immer gleich zu erkennen: Mit einer Abfrage über den Prozessstatus-Monitor Ps ermitteln Sie, ob das System den klassischen Init oder Systemd benutzt.

Mit den oft genutzten Optionen ax des Ps-Kommandos erhalten Sie allerdings auf einem von Systemd verwalteten Rechner nicht die korrekte Ausgabe (Listing 1, erste Abfrage). Erst wenn Sie die Option -e verwenden, liefert Ps ein korrektes Ergebnis (zweite Abfrage). Dasselbe gilt für ein System, das SysVinit benutzt (dritte Abfrage). Pstree liefert grundsätzlich eine zutreffende Ausgabe.

Listing 1

$ ps -ax | head -2
  PID TTY      STAT   TIME COMMAND
    1 ?        Ss     0:01 /sbin/init
$ ps -e | head -2
  PID TTY          TIME CMD
    1 ?        00:00:01 systemd
$ ps -e | head -2
  PID TTY          TIME CMD
    1 ?        00:00:00 init

Old School

Linux und artverwandte Systeme unterscheiden verschiedene Systemzuständen, die sogenannten Runlevel, denen gegebenenfalls Dienste (Daemons) zugeordnet sind. Die Tabelle "Runlevel" zeigt die für ein Linux-System typischen Zustände. Bis auf S erhalten dabei alle einen numerischen Wert zwischen 0 und 6. Die Runlevel von 2 bis 5 dienen je nach Distributionen unterschiedlichen Zwecken.

Runlevel

Wert Vorgang
0 kontrolliertes Beenden aller Prozesse, anschließendes Abschalten
S Single-User für root, ohne Netzwerk, Zugriff nur über Konsole
1 Single-User ohne Netzwerk, Zugriff nur über Konsole
2 bis 5 Mehrbenutzerbetrieb; Zugriff, Netzwerkzugriff und GUI distributionsspezifisch
6 kontrollierter Neustart

Welchen Runlevel das System beim Start standardmäßig anstrebt, können Sie der Datei /etc/inittab entnehmen; Listing 2 zeigt den entsprechenden Ausschnitt. Der Standard-Runlevel (initdefault) steht in der Zeile, die mit id beginnt – im Beispiel startet das System also in den Runlevel 2.

Listing 2

# The default runlevel.
id:2:initdefault:
# Boot-time system configuration/initialization script.
# This is run first except when booting in emergency (-b) mode.
si::sysinit:/etc/init.d/rcS
# What to do in single-user mode.
~~:S:wait:/sbin/sulogin

Vor dem Standard-Runlevel durchläuft das System den Single-User-Modus (si:), ausgenommen bei Störungen während des Boot-Vorganges. Einen wichtigen Eintrag finden Sie in der letzten Zeile von Listing 2: Damit das System im Modus für Einzelbenutzer überhaupt funktioniert, führt Init einen automatischen Login für root aus.

Alles auf Start

Der Init-Prozess ruft die zum jeweiligen Runlevel gehörenden Start- und Stop-Skripte auf, um den gewünschten Zustand herzustellen. Bei Debian-basierten Systemen finden Sie diese unter /etc/init.d. Das Paketmanagement einer Distribution legt diese Skripte bei der Installation eines Diensts in der Regel an. Müssen Sie doch einmal ein solches Skript von Hand erstellen, sollten Sie sich an bereits existierende Dateien als Muster halten. Ändern Sie die Konfiguration eines Diensts, erlaubt es ein solches Skript, den Daemon zu stoppen und wieder zu starten oder den Status abzufragen (Abbildung 1). Die gewünschte Aktion – start, stop oder status – geben Sie beim Aufruf mit an.

Abbildung 1: Stoppen, Starten und den Status eines Dienstes abfragen – mittels Init-Skript brauchen Sie dazu nur das passende Schlüsselwort als Parameter.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 9 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Systemstart
    Auf fast allen modernen Linux-Distributionen kümmert sich inzwischen Systemd um den Systemstart – und mehr. Wir erklären, wie die neue Schaltzentrale funktioniert.
  • Systemstart mit Systemd
    Einschalten, loslegen: Mit Systemd versucht eine Gruppe Entwickler die Revolution im Boot-Prozess. Ob der Turbo aber wirklich zündet, steht noch in den Sternen.
  • Systemd als Schaltzentrale für das Linux-System
    Systemd polarisiert die Community – und hat zugleich das Zeug dazu, alte Gräben zu schließen und eine einheitliche Basis für Linux zu bilden.
  • Upstart und Systemd im Vergleich
    Upstart und Systemd – gleich zwei neue Ansätze konkurrieren um die Pole-Position beim Linux-Start. Wir unterziehen die Kandidaten einem konzeptionellen Vergleich.
  • Systemd 209 freigegeben
    Die neue Version des Init-Systems bringt viele kleine Änderungen mit. So ist Systemd jetzt auf KDbus vorbereitet und übernimmt die Konfiguration von Netzwerkschnittstellen mit dem neuen Dienst Networkd.
Kommentare

Infos zur Publikation

LU 10/2017: Daten retten & sichern

Digitale Ausgabe: Preis € 8,50
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Stellenmarkt

Aktuelle Fragen

Lieber Linux oder Windows- Betriebssystem?
Sina Kaul, 13.10.2017 16:17, 2 Antworten
Hallo, bis jetzt hatte ich immer nur mit
IT-Kurse
Alice Trader, 26.09.2017 11:35, 2 Antworten
Hallo liebe Community, ich brauche Hilfe und bin sehr verzweifelt. Ih bin noch sehr neu in eure...
Backup mit KUP unter Suse 42.3
Horst Schwarz, 24.09.2017 13:16, 3 Antworten
Ich möchte auch wieder unter Suse 42.3 mit Kup meine Backup durchführen. Eine Installationsmöglic...
kein foto, etc. upload möglich, wo liegt mein fehler?
kerstin brums, 17.09.2017 22:08, 5 Antworten
moin, zum erstellen einer einfachen wordpress website kann ich keine fotos uploaden. vom rechne...
Arch Linux Netzwerkkonfigurationen
Franziska Schley, 15.09.2017 18:04, 0 Antworten
Moin liebe Linux community, ich habe momentan Probleme mit der Einstellung des Lan/Wlan in Arc...