Home / LinuxUser / 2002 / 01 / Systeminitialisierung und Runlevel

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

War doch klar...
(243 Punkte bei 15 Stimmen)
Re: War doch klar...
(179 Punkte bei 5 Stimmen)
Re: Skype für 64-Bit-Prozessor u. Suse 12.1
(161 Punkte bei 4 Stimmen)
Kubuntu verliert Finanzierung
(130 Punkte bei 4 Stimmen)
Offen fürs Geschäft
(80 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Shopping
Topsuche
 
Yatego Deutschlands größte Shoppingmall. 10000 Shops,
3.5 Mio Artikel. Alle Bestseller, Servertechnik und Technik Themenwelten.

Notebooks und Netzwerkhardware bei Mercateo günstig kaufen.
Internet Telefonie mit VoIP Telefonen von Gigaset
Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.
Günstige Digitalkameras finden Sie im Preisvergleich.

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.

Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare

678 Hits
Wertung: 0 Punkte (0 Stimmen)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 03/2012

Aktuelle Ausgabe kaufen:

Heft bestellen Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,50 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 56,10) können Sie im LNM-Shop bestellen.

Tipp der Woche

Duden Korrektor unter 64-Bit
Duden Korrektor unter 64-Bit
Tim Schürmann, 06.02.2012 10:36, 0 Kommentare

Der Duden Korrektor bietet eine äußerst nützliche Rechtschreib- und Grammatikkorrektur für LibreOffice und bringt in der aktuellen Version 8 e...

Aktuelle Fragen

Ubuntu 11.10 Compiz 3D Cube flackern
Moritz Obenauer, 12.02.2012 12:25, 0 Antworten
Hallo! Ich habe Ubuntu 11.10 mit Unity und den Compiz 3D Cube ein gerichtet. Er funktioniert...
Suse 12.1 Bootvorgang bleibt seit Update stehen
Wimpy *, 12.02.2012 09:22, 2 Antworten
Seit Update auf Kernel 3.1.9-1.4-desktop i686 bleibt der Bootvorgang stehen. Es erscheint der gr...
N24 Stick (Huawei E173) und Ubuntu 11.04
Patrick Obenauer, 11.02.2012 11:54, 1 Antworten
Hallo zusammen! Ich benutze einen alten Laptop, der mit Ubuntu 11.04 flott und problemlos läuft....
Wie kann man beim Einsatz von Compiz die Fenster-Dekoration einstellen?
GoaSkin , 10.02.2012 20:12, 0 Antworten
Hallo, ich nutze Linux Mint mit dem Gnome-Derivat Mate. Da die Distribution Compiz nicht autom...
rndc reload zone - failed bad zone
Ludwig jun. B., 06.02.2012 16:08, 2 Antworten
Schönen guten Tag, ich habe folgendes Problem. Immer wenn ich folgendes Kommando ausführen bek...