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 11/2014: VIDEOS BEARBEITEN

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

Schnell Multi-Boot-Medien mit MultiCD erstellen
Schnell Multi-Boot-Medien mit MultiCD erstellen
Tim Schürmann, 24.06.2014 12:40, 0 Kommentare

Wer mehrere nützliche Live-Systeme auf eine DVD brennen möchte, kommt mit den Startmedienerstellern der Distributionen nicht besonders weit: Diese ...

Aktuelle Fragen

Artikelsuche
Erwin Ruitenberg, 09.10.2014 07:51, 1 Antworten
Ich habe seit einige Jahre ein Dugisub LinuxUser. Dann weiß ich das irgendwann ein bestimmtes Art...
Windows 8 startet nur mit externer Festplatte
Anne La, 10.09.2014 17:25, 6 Antworten
Hallo Leute, also, ich bin auf folgendes Problem gestoßen: Ich habe Ubuntu 14.04 auf meiner...
Videoüberwachung mit Zoneminder
Heinz Becker, 10.08.2014 17:57, 0 Antworten
Hallo, ich habe den ZONEMINDER erfolgreich installiert. Das Bild erscheint jedoch nicht,...
internes Wlan und USB-Wlan-Srick
Gerhard Blobner, 04.08.2014 15:20, 2 Antworten
Hallo Linux-Forum: ich bin ein neuer Linux-User (ca. 25 Jahre Windows) und bin von WIN 8 auf Mint...
Server antwortet mit falschem Namen
oin notna, 21.07.2014 19:13, 1 Antworten
Hallo liebe Community, Ich habe mit Apache einen Server aufgesetzt. Soweit, so gut. Im Heimnet...