====== 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/ [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 [[de:cookbook:slitaztools|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