Initialzündung

Systeminitialisierung und Runlevel

01.01.2002
Zwischen dem Einschalten des Computers und dem Einloggen der Benutzer arbeitet das Programm init als erster Prozess. Es initialisiert das System, weckt Daemons wie crond oder syslogd und legt den Runlevel fest, den der Anwender vorfindet.

Der Ursprung der Prozesse

Alle Prozesse Ihres Rechners entspringen direkt oder indirekt dem Programm init. Der Kernel selbst startet dieses Programm, das seine Konfiguration in der Datei /etc/inittab findet. Hier liest init unter anderem die Einstellungen zu den Runlevels, den virtuellen Text-Konsolen und den Init-Skripten, die verschiedene Dienste in Gang setzen und beenden. Nach einem Shutdown-Befehl, ob nun im Text-Terminal oder dem Displaymanager KDM, sorgt init für ein korrektes Herunterfahren des Systems. Das Programm beendet alle Prozesse - und zum Schluss sich selbst.

Die Konfiguration

Bevor wir uns die verschiedenen Runlevel und Init-Skripten ansehen, werfen wir einen Blick in die Konfigurationsdatei /etc/inittab und greifen uns eine beliebige Zeile heraus, um sie zu analysieren:

l0:0:wait:/etc/init.d/rc 0

Diesen Eintrag, wie auch jeden anderen in der Datei, schlüsseln Sie nach folgendem Muster auf:

Id:Runlevel:Aktion:Prozess

Die Befehlssequenz id steht für die Identifizierungsnummer jeder Zeile in der Datei /etc/inittab. Die ID-Nummer variiert zwischen einem und bis zu vier Zeichen, einige Versionen beschränken die Obergrenze jedoch auf zwei Zeichen. In unserem Beispiel identifiziert sich der Eintrag mit der Zeichenkombination l0.

Der nächste Teil der Zeile zeigt den Runlevel an, für den diese Konfigurationsanweisung gilt. Unsere Anweisung greift also im Runlevel 0, dass bedeutet, das der Rechner anhält.

Mit Aktion bestimmen Sie, wie und wann der Befehl, der in der Prozess-Sequenz beschrieben ist, ausgeführt wird. Mit dem Eintrag wait wartet init, bis das Skript /etc/init.d/rc mit dem Parameter 0 seine Arbeit beendet hat. Das Programm init ermöglicht eine Reihe von Aktion-Definitionen, von denen wir die wichtigsten in Tabelle 1 aufgelistet haben. Weitere Einstellungen bietet Ihnen die Manualseite man inittab, die Sie neben der Hilfe man init über xterm oder Konsole erreichen.

Tabelle 1: Action-Definitionen

respawn Der Befehl der Prozess-Sequenz wird nach seinem Ende erneut gestartet
wait init wartet auf das Ende des folgenden Befehls
once Nur einmal soll der Befehl beim Wechsel des Runlevels gestartet werden
boot init führt das Kommando während des Hochfahren aus, ohne die Runlevel-Sequenz zu beachten
bootwait Diese Aktion arbeitet wie die Sequenz boot. Allerdings wartet init auf das Ende des Prozesses
initdefault Der Runlevel, in dem das System nach dem Hochfahren startet. Die process-Sequenz bleibt hierbei unbeachtet
sysinit Die Prozess-Sequenz wird während des Bootprozesses ausgeführt, jedoch vor den Anweisungen boot und bootwait
powerwait Bei einem Absacken der Stromzufuhr zum System führt init das nachfolgende Kommando aus und wartet auf dessen Ende
powerfail Wie powerwait, jedoch wartet init nicht mehr auf das Ende des initierten Kommandos
ctrlaltdel sagt init, welcher Befehl auf die Tastenkombination [Strg]+[Alt]+[Entf] antworten soll

Schauen wir uns die Datei /etc/inittab etwas näher an. Als Beispiel dient uns die Konfigurationsdatei, die der verbreiteten Distribution SuSE 7.2 beiliegt. Beginnen wir mit den Einträgen, die sich mit den virtuellen Textkonsolen beschäftigen:

1:2345:respawn:/sbin/mingetty --noclear tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6

Ausnahmweise lesen Sie in diesen Zeilen nicht die ID-Nummer an der ersten Stelle des Eintrags, sondern die Nummer des Devices, die dem Textterminal entspricht. Die zweite Stelle markiert wie gewohnt die Runlevel, und die Anweisung respawn ruft mit dem Kommando /sbin/mingetty die virtuellen Text-Konsolen auf. Damit Sie nach dem Start des Terminals tty1 zu den Meldungen des Bootprozesses scrollen zu können, sorgt die Option --noclear für den Erhalt der Nachrichten, die nützliche Informationen enthalten. Ohne diese Option löscht das System nach dem Terminal-Start jede abgelaufene Mitteilung.

Wahrscheinlich sehen Sie einige Unterschiede zwischen unserer Beispiel-inittab, und der Konfigurationsdatei, die init in Ihrer Distribution nutzt. Selbst in den fortschreitenden Versionen des selben Distributors wechseln die Einträge im Detail, ob sie nun die Runlevel ordnen oder Init-Skripte ansprechen. Sie sollten es deshalb vermeiden, Angaben einer veralteten /etc/inittab in eine neue Version zu kopieren, und davon absehen, eine distributionsfremde init-Konfiguration für Ihr System zu übernehmen. Ein falsch angegebener Pfad oder ein übersehenes Zeichen verhindern unter Umständen ein Hochfahren Ihres Systems. In diesem Falle versuchen Sie einen Systemstart im Single-User-Mode oder die Rettungsaktion mit einer Shell, die Sie in der Eingabe des Bootmanagers Lilo dem Kommando linux init=/bin/sh laden. Für solche Notfälle steht Ihnen das Handbuch Ihrer Distribution Rede und Antwort.

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

  • SysV-Init und die Runlevel
    Die meisten Distributionen bürden den kompletten Systemstart einem kleinen Programm namens Init auf, das den Job wiederum ganz ungeniert an eine wilde Bande aus Skripten delegiert. Mit denen gilt es zu kämpfen, gerät der Bootprozess einmal ins Stocken.
  • Von init an
    Nach dem Einschalten zeigt ein Computer viele kryptische Nachrichten an, bevor er sich mit dem Login-Bildschirm bereit meldet. Wir zeigen, was im Hintergrund des Boot-Vorgangs abläuft.
  • Präzise Kontrolle
    Auf einem typischen Linux-System laufen viele Anwendungen und Dienste gleichzeitig. Mit den richtigen Befehlen verschaffen Sie sich einen Überblick und greifend steuernd ein.
  • Bootvorgang 2. Anlauf
  • out of the box: gPS
    Sie verlieren bei textbasierten Prozessmonitoren wie top schnell die Übersicht? gPS bietet einen grafischen Ersatz und kann sogar mehrere Rechner über ein Netzwerk überwachen.
Kommentare

Infos zur Publikation

LU 12/2014: ANONYM & SICHER

Digitale Ausgabe: Preis € 4,95
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

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

Tipp der Woche

Ubuntu 14.10 und VirtualBox
Ubuntu 14.10 und VirtualBox
Tim Schürmann, 08.11.2014 18:45, 0 Kommentare

Wer Ubuntu 14.10 in einer virtuellen Maschine unter VirtualBox startet, der landet unter Umständen in einem Fenster mit Grafikmüll. Zu einem korrekt ...

Aktuelle Fragen

Nach Ubdates alles weg ...
Maria Hänel, 15.11.2014 17:23, 4 Antworten
Ich brauche dringen eure Hilfe . Ich habe am wochenende ein paar Ubdates durch mein Notebook von...
Brother Drucker MFC-7420
helmut berger, 11.11.2014 12:40, 1 Antworten
Hallo, ich habe einen Drucker, brother MFC-7420. Bin erst seit einigen Tagen ubuntu 14.04-Nutzer...
Treiber für Drucker brother MFC-7420
helmut berger, 10.11.2014 16:05, 2 Antworten
Hallo, ich habe einen Drucker, brother MFC-7420. Bin erst seit einigen Tagen ubuntu12.14-Nutzer u...
Can't find X includes.
Roland Welcker, 05.11.2014 14:39, 1 Antworten
Diese Meldung erhalte ich beim Versuch, kdar zu installieren. OpenSuse 12.3. Gruß an alle Linuxf...
DVDs über einen geeigneten DLNA-Server schauen
GoaSkin , 03.11.2014 17:19, 0 Antworten
Mein DVD-Player wird fast nie genutzt. Darum möchte ich ihn eigentlich gerne abbauen. Dennoch wür...