Table of Contents
Kommandoprozeduren bei der Systemeinleitung
Die Kommandoprozeduren für Systemeinleitung und -beendigung und ihre Konfigurationsdateien.
SliTaz-Systemeinleitung
SliTaz kennt keine Ausführungsstufen („runlevel“), bei der Systemeinleitung wird nur eine primäre Initialisierungsprozedur und eine Konfigurationsdatei für den init-Prozess verwendet. Die primäre Initialisierungsprozedur wiederum startet einige weitere Kommandoprozeduren, die spezielle Aufgaben übernehmen.
/etc/init.d/ - Verzeichnis für Kommandoprozeduren (von Hintergrundprozessen)
Das Verzeichnis /etc/init.d
enthält alle rc-Kommandoprozeduren. Kommandoprozeduren, deren Namen mit .sh
enden, sind (einmal auszuführende) Kommandoprozeduren. Andere Kommandoprozeduren, so wie dropbear
oder lighttpd
starten, beenden oder starten Dienste erneut mit einem Kommando wie:
# /etc/init.d/<daemon> [start|stop|restart]
In SliTaz gibt es eine Datei /etc/init.d/README
, worin die Grundfunktion von rc-Kommandoprozeduren beschrieben ist. Beachten Sie auch, dass in der Datei /etc/init.d/rc.functions
verschiedene Funktionen zur Verwendung in Kommandoprozeduren zur Verfügung gestellt werden. So kann etwa eine Funktion status
verwendet werden, mit der geprüft werden kann, ob das vorangegangene Kommando erfolgreich ausgeführt wurde (Rückinformation = 0) oder nicht.
/etc/init.d/rcS - Primäre Initialisierungsprozedur
Mit der Kommandoprozedur /etc/init.d/rcS
werden alle grundlegenden Dienste konfiguriert und das Basissystem initialisiert. Es beginnt mit dem Einhängen von Dateisystemen, dem Starten von Diensten wie syslogd, klogd und mdev, dann wird im System aufgeräumt usw.. Der Konfigurationsdatei /etc/rcS.conf
wird entnommen, welche Kommandoprozeduren auszuführen sind und welche Hintergrundprozesse bei der Systemeinleitung gestartet werden sollen. Schauen Sie nach, was ausgeführt wird:
# less /etc/init.d/rcS
Spezielle Kommandoprozeduren und Hintergrundprozesse
bootopts.sh - Linux-Kern-Optionen
Diese Kommandoprozedur wertet die Optionen aus, die vom Urlader an den Linux-Kern übergeben wurden und in der Datei /proc/cmdline
hinterlegt sind. Damit wird es möglich, das Verzeichnis /home
auf einer Partition eines externen Datenträgers mit der Option home=usb
oder home=sda[1-9]
einzuhängen. Darüberhinaus können auch die Systemsprache und die Tastaturbelegung mit Optionen direkt angegeben werden.
network.sh - Initialisierung der Netzwerkanschlüsse
Diese Kommandoprozedur entnimmte der Konfigurationsdatei /etc/network.conf
, welche Netzwerkschnittstelle verwendet werden soll, ob der DHCP-Klient gestartet werden soll und ob eine feste IP-Adresse verwendet werden soll und wenn ja, welche. Mit diesen Informationen werden dann die Netzwerkschnittstellen aktiviert. Hat in dieser Kommandoprozedur die Variable DHCP den Wert “yes”, so wird der DHCP-Klient für die in der Variablen INTERFACE angegebenen Schnittstelle gestartet.
i18n.sh - Internationalisierung
SliTaz speichert die Standard-Lokalisierung in der Datei /etc/locale.conf
, die von der Kommandoprozedur /etc/profile
bei jeder Anmeldung eines Benutzers gelesen wird. Die Datei /etc/locale.conf
wird bei der Systemeinleitung von der Kommandoprozedur /etc/i18n.sh
erstellt. Diese Kommandoprozedur startet die Kommandoprozedur tazlocale
, wenn die Datei /etc/locale.conf
nicht existiert. Ähnliches gilt für die Tastaturbelegung mit der Kommandoprozedur tazkeymap
und der Konfigurationsdatei /etc/keymap.conf
. Beide Kommandoprozeduren befinden sich im Verzeichnis /sbin
und verwenden dialog
und die ncurses
-Bibliothek. Die Kommandoprozedur prüft auch, ob eine Konfigurationsdatei /etc/TZ
für die Zeitzone existiert. Wenn nicht, wird eine gemäß der Tastaturbeleung erzeugt.
local.sh - systemspezifische Kommandos
In die Kommandoprozedur /etc/init.d/local.sh
kann der Systemadministrator Kommandos schreiben, die bei der Systemeinleitung ausgeführt werden sollen. Beispiel:
#!/bin/sh # /etc/init.d/local.sh: systemspezifische Kommandos. # Alle hier angegebenen Kommandos werden bei der Systemeinleitung ausgeführt. # . /etc/init.d/rc.functions echo "systemspezifische Kommandos werden ausgeführt... "
wpa_action.sh - Initialisierung des Drahtlosnetzwerks
Diese Kommandoprozedur wird von network.sh
ausgeführt, um bei Verwendung dynamischer IP-Adressen den DHCP-Server zu starten oder neu zu starten.
rc.shutdown
Diese Kommandoprozedur wird vom init-Prozess gemäß /etc/inittab
bei der Systembeendigung ausgeführt. Damit werden auch alle Hintergrundprozesse gemäß der Variablen RUN_DAEMONS in der primären Konfigurationsdatei /etc/rcS.conf
beendet.
/etc/inittab - Konfigurationsdatei für init
Dies ist die erste Datei, die vom Linux-Kern nach dem Laden gelesen wird. Darin werden die Initialisierungsprozedur (/etc/init.d/rcS
), virtuelle Terminals (ttys) und die Aktionen für den Fall eines Neuladens oder von Unterbrechungen festgelegt. Ein vollständiges Beispiel mit Anmerkungen befindet sich in SliTaz-Werkzeuge:
# /etc/inittab: init configuration for SliTaz GNU/Linux. # Boot-time system configuration/initialization script. # ::sysinit:/etc/init.d/rcS # /sbin/getty respawn shell invocations for selected ttys. tty1::respawn:/sbin/getty 38400 tty1 tty2::respawn:/sbin/getty 38400 tty2 tty3::respawn:/sbin/getty 38400 tty3 tty4::respawn:/sbin/getty 38400 tty4 tty5::respawn:/sbin/getty 38400 tty5 tty6::respawn:/sbin/getty 38400 tty6 # Stuff to do when restarting the init # process, or before rebooting. ::restart:/etc/init.d/rc.shutdown ::restart:/sbin/init ::ctrlaltdel:/sbin/reboot ::shutdown:/etc/init.d/rc.shutdown