Home / LinuxUser / 2002 / 12 / Von init an

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.

Wie Linux sich die Stiefel anzieht

Von init an

Wie beschreibt man einen Runlevel?

Wir wissen jetzt, dass beim Boot-Vorgang ein Programm namens init die aufgerufenen Programme kontrolliert. Wir kennen die Konfigurationsdatei /etc/inittab, die unter anderem festlegt, in welchen Runlevel das System beim Booten wechselt. Aber woher weiß der Computer, wie solch ein Runlevel aussieht?

Für jeden Runlevel von 0 bis 6 (siehe Tabelle 1) existiert ein eigenes Verzeichnis, das den Runlevel detailliert beschreibt. Auf einem "normalen" Linux-System heißt dieses Verzeichnis für Runlevel 5 beispielsweise /etc/rc.d/rc5.d, aber der genaue Name kann je nach Distribution abweichen – verbreitete Alternativen sind /etc/rc5.d oder auch /etc/init.d/rc5.d.

In diesen Verzeichnissen stehen die so genannten Init-Skripte. Jedes davon kontrolliert ein Subsystem Ihres Computers, z. B. die Uhr, den Mail-Server oder den Drucker-Spooler. Alle Init-Skripte folgen einer einheitlichen Syntax: Beim Aufruf wird genau ein Argument übergeben, entweder start oder stop, je nachdem, ob der betreffende Dienst gestartet oder angehalten wird. Viele Skripte kennen noch weitere Argumente für andere Aufgaben, aber jedes Init-Skript weiß über start und stop Bescheid. So kann init jeden Teil des Systems vollautomatisch kontrollieren.

Abbildung 2: Vorgänge beim Wechsel des Runlevels

Beim Wechsel in einen Runlevel (siehe auch Abbildung 2) ruft init alle Init-Skripte im zugehörigen Runlevel-Verzeichnis auf. Wenn Sie in den Runlevel 2 wechseln, werden alle Skripte aus /etc/rc.d/rc2.d gestartet. Werfen Sie einen Blick in dieses Verzeichnis:

$ ls /etc/rc.d/rc2.d
K09sshd     S16apmd    S75keytable
K75netfs    S20random  S90xfs
K89portmap  S30syslogd S99local
S08ipchains S40crond
S10network  S60lpd

Der Name jedes Skriptes besteht aus drei Bestandteilen:

  • Ein Buchstabe "K" oder "S" entscheidet, ob das Subsystem angehalten ("geKillt") oder geStartet wird.
  • Eine zweistellige Zahl von 00 bis 99 legt die Reihenfolge fest, in der die Skripte aufgerufen werden.
  • Ein Kürzel beschreibt das Subsystem für menschliche Administratoren.

Das im Beispiel gezeigte Runlevel-Verzeichnis wird demnach die Dienste sshd, netfs und portmap anhalten. Anschließend initialisiert es diverse Subsysteme neu, wodurch zum Beispiel Netzwerkeinstellungen korrigiert oder ein Tastaturtreiber geladen werden. Aktuelle Distributionen rufen ein Subsystem dabei nicht noch einmal auf, wenn es bereits läuft; es kommt also nicht zu doppelten Daemons.

Der gute Stil der Unix-Systemadministration fordert übrigens, dass die init-Skripte der Runlevel-Verzeichnisse Links in ein anderes Verzeichnis sind. Die eigentlichen Skripte stehen dann z. B. in /etc/init.d oder /etc/rc.d/init.d. Wenn Sie ein dadurch beschriebenes Subsystem für einen bestimmten Runlevel aktivieren möchten, legen Sie einfach einen neuen Link an:

# cd /etc/rc.d/rc5.d
# ln ../init.d/mysql S97mysql
# cd ../rc0.d
# ln ../init.d/mysql K02mysql
# cd ../rc1.d
# ln ../init.d/mysql K02mysql
# cd ../rc6.d
# ln ../init.d/mysql K02mysql

Der Vorteil: Änderungen am init-Skript wirken sich sofort auf alle Kopien aus; es kommt zu keinem Versions-Wirrwarr. Am Beispiel sehen Sie noch einen weiteren wichtigen Tipp: Wenn Sie einen neuen Start-Link anlegen, erstellen Sie am besten gleich die symmetrischen Stopp-Links für die Runlevel 0, 1 und 6.

Ausblick

Wenn Sie gerade ein Stündchen Zeit haben, sehen Sie sich doch einmal die init-Skripte für die wichtigsten Runlevel an. Dabei lernt man eine Menge über das System – und nebenbei auch über die Programmierung mit der Shell. Eine kleine Warnung an dieser Stelle: Mit init ist nicht gut Kirschen essen. Ein Fehler in der Boot-Konfiguration kann einen Computer lahmlegen. Und das bemerkt man erst am nächsten Morgen, wenn man den Rechner das nächste Mal einschaltet.

Glossar

BIOS

Das BIOS (Basic Input/Output System) ist meistens in einem programmierbaren Festspeicher (in aktuellen Geräten sind das EEPROMs) auf der Hauptplatine des Computers gespeichert. Es enthält neben dem Setup-Programm zur Steuerung einiger Hardware-Funktionen die Boot-Logik des PCs. Diese liest den Boot-Sektorder Festplatte ein, also ein paar Kilobyte Daten, und führt ihn aus – fertig. Alles andere muss die Software aus dem Boot-Sektor tun. Theoretisch enthält das BIOS auch noch Gerätetreiber für DOS-basierte Betriebssysteme, doch werden diese unter Linux in der Regel nicht benutzt.

Boot-Sektor

Am Anfang der Festplatte liegt ein Boot-Sektor, der ein Programm enthalten kann, das für das Laden des Betriebssystems zuständig ist. Es gibt einen Haupt-Boot-Sektor pro Festplatte, den Master Boot Record (MBR), sowie einen zusätzlichen Boot-Sektor für jede einzelne Partition. Der MBR wird meist für die Auswahl zwischen den installierten Betriebssystemen benutzt, oder er lädt seinerseits den Boot-Sektor einer Festplattenpartition. Dieser startet das eigentliche Betriebssystem.

Links

Links sind ein wichtiges Konzept bei Unix-artigen Betriebssystemen. Anstatt eine Datei zu kopieren, erstellt man einen neuen Verzeichniseintrag, der auf die ursprüngliche Datei zeigt. Wenn ein Programm diesen neuen Eintrag öffnet, sieht es den Inhalt der ursprünglichen Datei. Dabei unterscheidet man harte von symbolischen Links – bei harten Links ist die Kopie vom Original überhaupt nicht mehr zu unterscheiden, wohingegen symbolische Links wirklich nur Zeiger sind.

Der Autor

Marc André Selig arbeitet als wissenschaftlicher Angestellter an der Universität Trier und als Arzt im Praktikum am Kreiskrankenhaus Schramberg. Momentan beschäftigt er sich vor allem mit der Programmierung Internet-basierter Datenbanken auf diversen Unix-Plattformen, doch auch die E-Mail-Administration der von ihm betreuten Server lässt ihn selten zur Ruhe kommen.

Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare

Hits
Wertung: 55 Punkte (2 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...