Die Kommandoprozeduren für Systemeinleitung und -beendigung und ihre Konfigurationsdateien.
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.
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.
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
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.
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.
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.
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... "
Diese Kommandoprozedur wird von network.sh
ausgeführt, um bei Verwendung dynamischer IP-Adressen den DHCP-Server zu starten oder neu zu starten.
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.
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