Richtig abgelegt

Alle im Folgenden angegebenen Pfade beziehen sich auf Debian und verwandte Systeme. Andere Distributionen verwenden oft alternative Verzeichnisse.

Für jeden Runlevel existiert ein eigenes Verzeichnis, in dem sich Links befinden, die nach /etc/init.d/Skript zeigen. Der Name des symbolischen Links beginnt bei einem Startskript mit einem S, ein führendes K kennzeichnet das Skript zum Beenden ("Kill"). Es folgt eine Nummer, die die Reihenfolge bestimmt, in der das System die Skripte abarbeitet. Installieren Sie Dienste per Paketmanagement, erhalten die Links die passenden Namen; bei selbst kompilierten Programmen müssen Sie selbst Hand anlegen, auch hinsichtlich der Reihenfolge. So funktioniert beispielsweise ein Webserver erst dann ordnungsgemäß, wenn das Netzwerk bereits läuft.

Im klassischen Init-System von Debian liegen unter /etc die Verzeichnisse für die Runlevel: rc0.d, rc1.d, rc2.d, rc3.d, rc4.d, rc5.d, rc6.d und rcS.d. Bei Debian 7 enthalten rc3.d, rc4.d und rc5.d fast identische Daten wie rc2.d, kommen aber in der Regel nicht zum Einsatz. Sie bieten damit die Möglichkeit, eigene Vorstellungen zu verwirklichen [3].

Das Skript für den Dienst atd liegt auf einem solchen System mit gleichem Namen unter /etc/init.d. Unter /etc/rc2.d befindet sich der Link S15atd für den Start. Die Links, die der Init-Prozess aufruft, um diesen Daemon zu beenden, liegen in mehreren Verzeichnissen: rc0.d, rc1.d und rc6.d und heißen jeweils K01atd.

Konfiguration

Die Datei /etc/inittab definiert nicht nur das Standard-Runlevel, sondern steuert das Verhalten des Systems auch über weitere Einträge, die in der folgenden Form vorliegen:

id:Runlevel(s):Aktion:Kommando

Das erste Feld bezeichnet den Eintrag eindeutig und einmalig. Im zweiten Feld führen Sie einen oder mehrere Runlevels auf, für die der Eintrag gilt. Bei mehreren Einträgen sortieren Sie diese aufsteigend. Das dritte Feld gibt die Art der gewünschten Aktion an, deren Bedeutung die Tabelle "Aktionen" aufführt.

Aktionen

Aktion Bedeutung
initdefault Standard-Runlevel
respawn Wurde der angegebene Prozess beendet, startet das System das Programm neu
wait Init wartet beim Wechsel des Runlevels das Ende des angegebenen Prozesses ab
ctrlaltdel Aktion für die Tastenkombination [Strg]+[Alt]+[Entf]
boot Aktion nur beim Start, nicht beim Wechsel des Runlevels ausführen
once Aktion einmalig beim Erreichen des angegebenen Runlevels ausführen
powerwait Bei vorhandener USV Prozess bei Stromausfall starten.
powerfail Bei vorhandener USV Prozessende des aufgerufenen Programms nicht abwarten.
powerfailnow Bei vorhandener USV System herunterfahren, sobald die USV leere Batterien meldet.
powerokwait Bei vorhandener USV Ende des Prozesses des aufgerufenen Programms abwarten, sobald Netzverbindung wiederhergestellt ist.

In Listing 3 finden Sie einen weiteren Auszug aus /etc/inittab. Zu Beginn steht die Anweisung, den Durchlauf des Skripts /etc/init.d/rc für den angegebenen Runlevel abzuwarten. Zeile 12 definiert, was beim Drücken von [Strg]+[Alt]+[Entf] geschehen soll – in diesem Fall für alle Runlevel außer 0 und 6 ein Neustart des Rechners. Die Einträge pf, pn und po regeln, wie das System beim Stromausfall bei vorhandener USV reagiert.

Der Block ab Zeile 33 aktiviert die Konsolen. Die erste (tty1) kommt in den Runleveln 1 bis 5 zum Einsatz. Die virtuellen Konsolen tty2 bis tty6 sind den Runleveln 2 und 3 vorbehalten. Auf tty7 liegt bei Debian die grafische Oberfläche. Benötigen Sie zusätzliche virtuelle Konsolen, bestünde die Möglichkeit, ab tty8 weitere anzulegen.

Listing 3

l0:0:wait:/etc/init.d/rc 0
l1:1:wait:/etc/init.d/rc 1
l2:2:wait:/etc/init.d/rc 2
l3:3:wait:/etc/init.d/rc 3
l4:4:wait:/etc/init.d/rc 4
l5:5:wait:/etc/init.d/rc 5
l6:6:wait:/etc/init.d/rc 6
# Normally not reached, but fallthrough in case of emergency.
z6:6:respawn:/sbin/sulogin
# What to do when CTRL-ALT-DEL is pressed.
ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
# Action on special keypress (ALT-UpArrow).
#kb::kbrequest:/bin/echo "Keyboard Request--edit /etc/inittab to let this work."
# What to do when the power fails/returns.
pf::powerwait:/etc/init.d/powerfail start
pn::powerfailnow:/etc/init.d/powerfail now
po::powerokwait:/etc/init.d/powerfail stop
# /sbin/getty invocations for the runlevels.
#
# The "id" field MUST be the same as the last
# characters of the device (after "tty").
#
# Format:
#  <id>:<runlevels>:<action>:<process>
#
# Note that on most Debian systems tty7 is used by the X Window System,
# so if you want to add more getty's go ahead but skip tty7 if you run X.
#
1:2345:respawn:/sbin/getty 38400 tty1
2:23:respawn:/sbin/getty 38400 tty2
3:23:respawn:/sbin/getty 38400 tty3
4:23:respawn:/sbin/getty 38400 tty4
5:23:respawn:/sbin/getty 38400 tty5
6:23:respawn:/sbin/getty 38400 tty6

Den laufenden und vorhergehenden Runlevel ermitteln Sie über die Anweisung who -r (Abbildung 2). Den Wechsel eines Runlevels – dazu gehört auch das Anhalten oder Neustarten des Rechners – nehmen Sie mit den Kommandos aus der Tabelle "Runlevel-Wechsel" vor. Mit dem Befehl kill -1 1 liest Init seine Konfiguration neu ein, ohne dass dazu das System neu starten müsste. Mittels kill -9 1 fahren Sie das System herunter.

Runlevel-Wechsel

Runlevel Kommandos
0 init 0, shutdown -h now, halt
1 bis 5 init n
6 init 6, shutdown -r now, reboot
Abbildung 2: Mit einem einfachen Kommando ermitteln Sie den aktuellen und den vorhergehenden Runlevel.

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 03/2018 NEUE DISTRIBUTIONEN

Digitale Ausgabe: Preis € 5,95
(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

Internet abschalten
Karl-Heinz Hauser, 20.02.2018 20:10, 0 Antworten
In der Symbolleiste kann man das Kabelnetzwerk ein und ausschalten. Wie sicher ist die Abschaltu...
JQuery-Script läuft nicht mit Linux-Browsern
Stefan Jahn, 16.02.2018 12:49, 2 Antworten
Hallo zusammen, ...folgender goldener Code (ein jQuery-Script als Ergebnis verschiedener Exper...
XSane-Fotokopie druckt nicht mehr
Wimpy *, 30.01.2018 13:29, 2 Antworten
openSuse 42.3 KDE 5.8.7 Seit einem Software-Update druckt XSane keine Fotokopie mehr aus. Fehler...
TOR-Browser stürzt wegen Wikipedia ab
Wimpy *, 27.01.2018 14:57, 0 Antworten
Tor-Browser 7.5 based on Mozilla Firefox 52.8.0 64-Bit. Bei Aufruf von http: oder https://de.wi...
Wifikarte verhindert Bootvorgang
Maik Kühn, 21.01.2018 22:23, 1 Antworten
iwlwifi-7265D -26 failed to load iwlwifi-7265D -25 failed to load iwlwifi-7265D -24 failed to l...