Der Start eines Debian Systems ähnelt zunächst sehr dem Systemstart
anderer Linux-Versionen. Nach dem Einschalten des Systems lädt der Bootloader (meist GRUB oder LILO auf X86-Systemen) den gewünschten Kernel in den Speicher. Der Kernel wird gestartet und bindet das Wurzeldateisystem
(Root) ein. Als erstes Programm wird /sbin/init
aufgerufen und erhält somit immer die Prozessnummer 1, alle weiteren Prozesse werden direkt oder indirekt
von init
gestartet. Man bezeichnet init
deshalb auch als „Vater aller
Prozesse“.
init
liest die Konfigurationsdatei /etc/inittab
, in der festgelegt ist, dass zunächst
das Skript /etc/init.d/rcS
ausgeführt werden soll.
Dieses Skript führt in einer festgelegten Reihenfolge (aufsteigend in
numerischer/alphabetischer Reihenfolge) alle Skripte im Verzeichnis /etc/rcS.d
aus.
Skripte, deren Dateiname mit einem „K“ beginnt, werden mit
der Option „stop“ ausgeführt. Mit dem Buchstaben „S“
beginnende Skripte dagegen werden mit der Option „start“ ausgeführt.
Mit diesen Skripten werden beispielsweise alle weiteren Partitionen eingebunden,
Module geladen, das Netzwerk aktiviert und Dienste gestartet.
Debian verwendet das vom Unix-System V eingeführte Konzept verschiedener Zustände des Systems, die so genannten Runlevel. Ein Runlevel ist ein Software-Zustand des Systems, der es nur einer bestimmten Gruppe von Prozessen erlaubt, ausgeführt zu werden. So können Runlevel beispielsweise für unterschiedliche Betriebsmodi eines Systems verwendet werden. Es ist möglich, zwischen (fast allen) Runleveln im laufenden Betrieb zu wechseln, ohne das System neu starten zu müssen.
Jeder der verfügbaren Runlevel kann mit dem Kommando telinit n
, wobei n
die Zahl des gewünschten Runlevels ist, aktiviert
werden. Zum Einsatz kommen die Runlevel 0-9 sowie S und s, wobei den Runleveln
0, 1 und 6 eine besondere Bedeutung zukommt.
Debian Runlevel
halt
, hält das System an, ohne es
neu zu starten.
bringt das System in den Single-User-Modus. Es werden nur die minimal benötigten Dienste gestartet, Netzwerkschnittstellen sind nicht aktiviert. Dieser Modus ist für Wartungsarbeiten gedacht.
Multiuser Modus, in diesen Runleveln wird üblicherweise gearbeitet. Ein unverändertes Debian System läuft im Normalbetrieb im Runlevel 2.
Diese Runlevel werden nicht verwendet. init
ist aber in der Lage, diese zu
benutzen, wenn vom Administrator entsprechende Skripte und Verzeichnisse
angelegt werden.
bringen das System in den Single-User-Modus. Siehe auch Runlevel 1.
So genannte „ondemand“-Runlevel. Siehe inittab.
Schalten Sie Ihr Debian GNU/Linux-System niemals einfach aus! Sie riskieren in diesem Fall einen Verlust Ihrer Daten!
Wenn Sie Ihren Computer zu Hause benutzen, möchten Sie ihn vielleicht nachts abschalten (eigentlich schaltet kein richtiger Linux-Fan seinen Computer jemals ab, aber trotzdem wollen wir diesen Ausnahmefall kurz besprechen...).
Es ist eine sehr schlechte Idee, einen Linux-Computer nach der Arbeit einfach
auszuschalten oder die RESET-Taste zu drücken. Der Linux-Kernel hat, um die
Performance zu erhöhen, einen internen Festplatten-Cache. Das bedeutet, dass
Informationen temporär im Arbeitsspeicher (RAM) des Computers abgelegt werden, bevor
sie auf der Festplatte gespeichert werden. Dies beschleunigt viele Aktionen stark.
Periodisch wird der Inhalt dieses Puffers auf die Festplatte übertragen. Dies können
Sie auch selbst durch das Kommando
sync
erreichen.
Um Ihren Rechner ordnungsgemäß herunterzufahren, benutzen Sie bitte das Kommando
reboot
(als Administrator - „root“) oder
drücken die Tastenkombination STRG+ALT+ENTF gleichzeitig. Debian
GNU/Linux wird nun unmittelbar alle Programme beenden und den Rechner neu starten.
Um den Rechner abzuschalten, müssen Sie Administrator (root) sein. Benutzen Sie
das Kommando
shutdown -h now
. Wenn Sie die Zeile
System halted, it's safe to turn off the computer.
sehen,
können Sie den Rechner ausschalten.
Bei neueren Computern mit Advanced Power Management-Unterstützung (APM) und einem Kernel, der dies unterstützt, schaltet sich der Rechner selbsttätig ab.
Sie können aber auch als normaler Benutzer den Rechner jederzeit mit der
Tastenkombination STRG+ALT+ENTF herunterfahren, wenn der
Administrator dies nicht deaktiviert hat (in /etc/inittab
). Keine Angst, das System wird auch so
korrekt heruntergefahren, es gehen keine Daten verloren.
Die Datei /etc/inittab
beschreibt die
Prozesse, die beim Systemstart und im normalen Betrieb ausgeführt
werden. Ein Eintrag in dieser Datei ist wie folgt aufgebaut:
id:runlevels:action:process
Zeilen, die mit dem Zeichen #
beginnen, sind Kommentare und werden nicht
ausgewertet. Die Werte in den einzelnen Feldern einer Datei haben die folgende
Bedeutung
Felder in der Datei inittab
Ist eine eindeutige Zeichenkette mit der maximalen Länge von vier Zeichen.
Beschreibt, in welchen Runleveln der Prozess gestartet werden
soll. Hier können mehrere Runlevel, beispielsweise 1234
, angegeben werden.
Die auszuführende Aktion. Die Aktionen werden weiter unten im Detail beschrieben.
Das auszuführende Kommando.
Der Eintrag im Feld „action“ steuert, auf welche Weise ein Prozess gestartet wird. Das Feld kann mit den im folgenden beschriebenen Werten belegt werden.
Aktionen
Der Prozess wird neu gestartet, falls das Programm beendet wird.
Der Prozess wird beim Wechsel in den angegebenen Runlevel
gestartet, und init
wartet, bis der Prozess beendet
wird.
Der Prozess wird einmalig gestartet, wenn der Runlevel erreicht wird.
Der Prozess wird beim Systemstart gestartet, das Feld „runlevels“ wird ignoriert.
Der Prozess wird beim Systemstart gestartet, init
wartet, bis der Prozess beendet
wird. Das Feld „runlevels“ wird ignoriert.
Dieser Eintrag wird ignoriert.
Wird bei dem entsprechenden „ondemand“-Runlevel ausgeführt. Der Runlevel wird nicht gewechselt. „ondemand“-Runlevel sind „a“, „b“ und „c“.
Beschreibt den normalen Runlevel eines Systems, Debian verwendet hier den Runlevel 2. Ist kein Runlevel angegeben, so wird beim Systemstart nach dem gewünschten Runlevel gefragt.
Dieser Eintrag wird beim Systemstart vor Einträgen mit der Kennung „boot“ oder „bootwait“ ausgeführt. Das Feld „runlevels“ wird nicht ausgewertet.
Unterbrechungsfreie Stromversorgung. Der Prozess
wird gestartet, wenn die Netzspannung unterbrochen wird (dies setzt
natürlich eine USV - Unterbrechnungsfreie Stromversorgung - voraus). init
wird über den Ausfall
durch ein Programm informiert, das die USV überwacht, und wartet,
bis der Prozess beendet ist.
Wie „powerwait“, jedoch wird nicht auf die Beendigung des Prozesses gewartet.
Dieser Prozess wird ausgeführt, wenn die Netzspannung wieder verfügbar ist.
Geht die Ladung der USV soweit zur Neige, dass nur noch für kurze Zeit der Betrieb aufrecht erhalten werden kann, so wird dieser Eintrag ausgeführt und das System heruntergefahren.
Wird die Tastenkombination STRG+ALT+ENTF gedrückt, so führt dies zum Herunterfahren das Systems, ähnlich wie man es von anderen Betriebssystemen kennt. Für ein Serversystem sollte dieser Eintrag deaktiviert werden, um zu verhindern, dass das System „versehentlich“ heruntergefahren wird. Ansonsten bietet dieser Eintrag eine Möglichkeit, das System ohne Administrator- Passwort herunterzufahren.
Hierüber können spezielle Tastenkombinationen an init
weitergereicht werden. Die
Dokumentation hierzu findet sich im Paket kbd
.
Hier einige Beispiele für Einträge in der Datei /etc/inittab
. Zunächst der Eintrag für den Runlevel,
in dem das System gestartet werden soll:
id:2:initdefault:
Debian verwendet hier den Runlevel 2, dies weicht von einigen anderen Distributionen ab. Mit folgendem Eintrag wird festgelegt, welche Aktion auszuführen ist, wenn das System im Single-User-Modus gestartet wird.
~~:S:wait:/sbin/sulogin
Die Runlevel 0 bis 6 werden über die folgenden Zeilen gesteuert, genau genommen
wird in jedem Fall das Skript /etc/init.d/rc
mit dem Runlevel als Option
aufgerufen.
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
Das nächste Beispiel aktiviert die virtuellen Konsolen. Debian bietet in den Runleveln 2 und 3 sechs virtuelle Konsolen, in den Runleveln 4 und 5 ist nur die erste Konsole aktiv.
1:2345:respawn:/sbin/getty 38400 tty1 2:23:respawn:/sbin/getty 38400 tty2 3:23:respawn:/sbin/getty 38400 tty3 4:23:respawn:/sbin/getty 38400 tty4 5:23:respawn:/sbin/getty 38400 tty5 6:23:respawn:/sbin/getty 38400 tty6
Die Datei /etc/inittab
auf einem Debian System ist gut
kommentiert, so dass mit Hilfe dieses Abschnittes und der Kommentare weitere
Anpassungen leicht fallen werden. Aber Achtung: bitte jede Änderung gut prüfen, da
Probleme zu einem Systemzustand führen können, in dem beispielsweise ein Login
nicht möglich ist.
Mitunter kann es vorkommen, dass init
nicht in der Lage ist, ein Programm zu starten.
Die Ursache kann ein fehlerhafter Eintrag in der Datei /etc/inittab
, oder auch ein fehlerhaftes Programm
sein. Bemerkbar macht sich dies durch die Ausgabe der Zeile
init: Id "D1" respawning to fast: disabled for 5 Minutes
wobei „D1“ hier beispielhaft für den entsprechenden Eintrag in der
Datei inittab
steht. Da init
nicht in der Lage ist, das Programm zu starten,
wird der entsprechende Eintrag für die nächsten 5 Minuten ignoriert, um die
Belastung des Systems nicht unnötig in die Höhe zu treiben.
© 1999 - 2024 | Das Debian GNU/Linux Anwenderhandbuch von Frank Ronneburg steht unter einer Creative Commons Namensnennung-Nicht Kommerziell-Keine Bearbeitung 3.0 Deutschland Lizenz.