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)
Mandriva in Nöten
(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

Wo laufen sie denn

Was bedeutet das Wort Single User Mode? An verschiedenen Stellen dieses Artikels fanden die Runlevel bereits ihre Erwähnung. Jeder Runlevel bietet Ihnen spezifische Dienste und Einsatzgebiete an. Der Single User Mode (oder Einzelbenutzer-Modus) ist ein Runlevel, der als Ebene zur Wartung und Administration des Systems zu Ihrer Verfügung steht. In der Tabelle 2 sehen Sie eine Liste der Runlevel, wie sie viele Distributionen aufstellen und anwenden.

Tabelle 2: Liste der Runlevel

0 Halt des Sytems
1 Einzelbenutzer-Modus zur Administration
2 Mehrbenutzer-Modus ohne Netzwerk
3 Mehrbenutzer-Modus mit Netzwerk
4 Ungenutzt und frei
5 Mehrbenutzer-Modus mit Netzwerk und grafischer Oberfläche
6 Neustart des Systems

Eine kurze Zeile verrät dem Programm init in welchem Runlevel Sie nach dem Bootprozess landen möchten. Wie Sie sicher in Tabelle 1 bemerkt haben, trägt die Befehlssequenz initdefault die Verantwortung, ob Sie sich in der Text-Konsole anmelden oder in einem Displaymanager:

id:3:initdefault:

In der Regel beginnen Sie Ihre Anwendungen im Runlevel 3 oder 5, ein Wechsel der Ebene ist jedoch im laufenden Betrieb möglich, wenn Sie es als Systemadministrator wünschen. Das Kommando

root: # init 1

beendet den Runlevel, in dem Sie sich gerade befinden, und ermöglicht Ihnen administrative Aufgaben im Einzelbenutzer-Modus. Der Befehl init 5 bringt Sie danach flugs zurück auf die grafische Oberfläche. Durch ein Init-Kommando können Sie, wie Sie in Tabelle 2 sehen, das System herunterfahren oder den Neustart initialisieren, denn halt und reboot sind ebenfalls Runlevel.

Wie Sie gesehen haben, unterscheiden sich die Runlevel durch die Programme und Dienste, die sie anbieten. Aber das tun sie freilich nicht von sich aus, denn init startet und stoppt die entsprechenden Skripte der einzelnen Runlevel. Picken wir uns die skriptsteuernden Einträge der Datei /etc/inittab einmal heraus, um den Aufbau des Runlevel-Wechsel in Augenschein zu nehmen:

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

Diese Konfigurationsanweisung ruft bei jeder Veränderung des Runlevels das Shellskript /etc/init.d/rc auf. Je nach Distribution hört das rc-Skript auch auf den Namen /etc/rc.d/rc. Bei SuSE 7.2 ist das Verzeichnis /etc/rc.d lediglich ein Link auf die Verzeichnisstruktur unter /etc/init.d/. Die Datei /etc/initab der Distribution Red Hat beherbergt statt der SuSE-Anweisungen die folgenden Zeilen:

l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6

Nachdem das Rc-Skript den neuen Runlevel von init erhalten hat, führt es ebenfalls weitere Skripte aus. Zunächst starten die Kill-Skripte des Runlevels, den es zu verlassen gilt. Danach ruft das Rc-Skript die Start-Skripte des Runlevels auf, in den Sie gelangen möchten.

Die Kill- und Start-Skripte liegen beim Nürnberger Distributor SuSE in den Pfaden von /etc/init.d/rc0.d bis /etc/init.d/rc6.d. Das Verzeichnis /etc/init.d/rcS samt des dazugehörigen Runlevels S lassen wir, um der Übersichtlichkeit genüge zu tun, unter den Tisch fallen (der Runlevel S bezeichnet bei SuSE den Single User Mode vom Boot-Terminal aus, und das auch noch mit amerikanischer Tastaturbelegung).

Die Distribution Red Hat stellt die Kill -und Startskripte in einen anderen Zweig des Verzeichnisbaumes, und zwar nach /etc/rc.d/rc0.d bis /etc/rc.d/rc6.d.

Da diese Aufzählung eine Menge Skripte und Verzeichnisse nennt, beschäftigen wir uns einmal konkret mit dem Ablauf, wenn Sie den Runlevel wechseln. Als Root springen Sie vom Runlevel 5 in den Runlevel 1, um am System zu basteln:

root: # init 1

Das Programm init startet als Antwort auf Ihre Eingabe das rc-Skript mit dem Kommando /etc/init.d/rc 1 (SuSE) oder /etc/rc.d/rc 1 (Red Hat), das für diesen Zweck in der Konfigurationsdatei /etc/inittab steht.

Das Rc-Skript initiiert Runlevel 1, indem es zuerst alle Kill-Skripte des aktuellen fünften Runlevels aufruft. Die Kill-Skripte beenden daraufhin jeden Prozess, der im neuen Runlevel nicht gebraucht wird. Sie entdecken diese Skripte am vorangestellten Buchstaben K im Verzeichnis /rc5.d, abhängig von dem Pfad, den Ihre Distribution vorgibt. Danach weckt das Rc-Skript im Verzeichnis rc1.d die Start-Skripte aller Dienste, die zuvor schliefen, deren Arbeit jedoch im neuen Runlevel vom System benötigt wird. Der Buchstabe S kennzeichnet die Start-Skript für Sie. Zusätzlich zu den Buchstaben K und S markieren die nachfolgenden Zahlen die Reihenfolge, in der die Skripte aufgerufen werden.

Beim näheren Hinsehen entpuppen sich die Skripte in den Verzeichnissen rc0.d bis rc6.d als Links, die das System der Red Hat-Distribution zu den Dateien im Verzeichnis /etc/rc.d/init.d knüpft. Bei SuSE liegen die eigentlichen Skripte lose im Verzeichnis /etc/init.d neben den anderen Init-Dateien. Jede der verlinkten Dateien wird zudem, mit dem entsprechenden Parameter, als Kill- oder auch als Start-Skript aufgerufen. Auf diese Weise können Sie Dienste und Daemons per Hand starten, stoppen oder deren Konfiguration neu einlesen:

root: # /etc/init.d/inetd restart

Abbildung 1: Der inetd wird erneut aufgerufen

In diesem Beispiel wird der Super-Server inetd gestoppt und sogleich wieder gestartet. Einige Parameter, mit denen Sie die Init-Skripte anstossen können, lesen Sie in Tabelle 3.

Tabelle 3: Parameter der Init-Skripte

start Startet den Dienst
stop Stoppt den Dienst
Status Zeigt den Status des Dienstes an
restart Beendet den Dienst und startet ihn neu, bzw. wenn der Dienst noch nicht lief, wird der Dienst nur gestartet
reload Die Konfiguration des Dienstes erneut einlesen

Grundlegende Init-Skripte

Im letzten Abschnitt unserer Reise durch die Systeminitialisierung wollen wir uns der Dienste annehmen, die während des Hochlaufs des Rechners ausgeführt werden, unabhängig vom Runlevel. Dazu schauen wir noch einmal in die Konfigurationsdatei /etc/inittab. Das Skript, das sofort nach dem Systemstart von init ausgeführt wird, kümmert sich um die Zeiteinstellung, die Verzeichniskonsistenz, regelt die Tastaturbelegung, bindet die Partionen und noch vieles mehr. Es wird, im Gegensatz zum Rc-Skript, nur einmal ausgeführt und ruht danach, gleichgültig, wie häufig Sie den Runlevel wechseln.

Red Hat nennt dieses wichtige Skript /etc/rc.d/rc.sysinit, als Debianer finden Sie die Datei im Pfad /etc/init.d/rcS, und als Nutzer der Nürnberger SuSE 7.2 heisst das Skript in Ihrem Rechner /etc/init.d/boot. Die Datei /etc/inittab schreibt es, je nach Ihrer Distribution, in folgender Anweisung fest:

# SuSE
si:I:bootwait:/etc/init.d/boot
# Red Hat
si::sysinit:/etc/rc.d/rc.sysinit
# Debian
si::sysinit:/etc/init.d/rcS

Doch nicht nur die Aufrufe und die Namen des Skriptes, das die grundlegenden, in allen Runlevels geltenden Initialierungsschritte besorgt, unterscheiden sich. Auch die Startskripte der zentralen Dienste siedeln je nach Distribution auf anderen Ästen des Verzeichnisbaumes. So bearbeitet das Skript /etc/init.d/rcS von Debian beispielsweise die Dateien des Verzeichnisses /etc/init.d/rcS.d, ein SuSE-System hingegen verlegt diese Arbeit auf die Dateien unterhalb des Pfade /etc/init.d, wobei es das Verzeichnis /etc/init.d/boot.d einbezieht. Bei Red Hat finden Sie schließlich die Startskripte zu Basisdiensten wie halt,crond oder syslogd unter /etc/rc.d/init.d. Ob der verwirrenden Vielfalt der Skripterei möchten wir Sie an dieser Stelle auf das Handbuch Ihrer Lieblings-Distribution hinweisen, das Ihnen spezielle Antworten zur Systeminitialisierung vermittelt.

Zum Schluss unseres Ausfluges gestatten wir uns einen Blick auf die Konfiguration einer Tastenkombination, die echte Erholung verspricht:

ca::ctrlaltdel:/sbin/shutdown -r -t 4 now

Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare

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...