Home / LinuxUser / 2002 / 01 / Systeminitialisierung und Runlevel

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Mandriva gibt Distribution in die Hände der Community
(268 Punkte bei 24 Stimmen)
Neues vom Systemd
(161 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

782 Hits
Wertung: 0 Punkte (0 Stimmen)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 06/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

Adobe AIR
Adobe-AIR-Programme installieren und (manuell) starten
Tim Schürmann, 14.05.2012 13:09, 0 Kommentare

Es gibt sie noch: neue Anwendungen, die Adobes Integrated Runtime voraussetzen. Aktuellstes und vermutlich auch größtes Beispiel ist das Adventure Botanicula

Aktuelle Fragen

gibt es ein Kommandozeilen Tool, um ein X11-Fenster in ein Anderes einzubetten?
GoaSkin , 21.05.2012 16:44, 0 Antworten
Das XEmbed-Protokoll ist u.A. dazu gedacht, dass man eine X11-Anwendung in eine andere wie ein Wi...
Apache2, Options -Indexes geht nicht
no no, 12.05.2012 19:01, 8 Antworten
Habe in apache2.conf folgendes stehen: Options -Indexes ...
LInux auf Dell LS H500
Andreas Endresl, 09.05.2012 08:54, 2 Antworten
Habe einen alten Dell Latitude LS H500 nur mit ext. Floppy und CD es geht nur immer eines von den...
Datenwiederherstellung unter Ubuntu 12.04 mit "Simple Backup" nach Umzug von Linux Mint
Christian Lottmann, 07.05.2012 13:33, 0 Antworten
Vor dem Umzug auf Ubuntu 12.04 habe ich unter Linux MInt mit "Simple Backup" voll (15.4.2012) und...
DKMS für den propritären NVIDIA-Treiber
Commander Data, 26.04.2012 22:02, 2 Antworten
Hallo an die Gemeinde. Ich habe hier ein interessantes Stück openSuSE gefunden. http://forums.op...