Nach dem Laden des Linux-Kernels wird als erstes Programm überhaupt das
Programm init
gestartet. Dieses Programm startet alle weiteren
Programme; welche das sind, wird über die Skripte im Verzeichnis
/etc/init.d/
aus dem Paket sysv-rc
bestimmt. Je nach gewünschtem Runlevel des Systems zeigen Links aus den Verzeichnissen /etc/rcN.d/
(N ist die Nummer des
aktuellen Runlevels, normalerweise 2) auf die Skripte im Verzeichnis
/etc/init.d/
, so ist
beispielsweise /etc/rc2.d/S20exim4
ein Link auf das
Startskript für Exim (/etc/init.d/exim4
). Den aktuellen
Runlevel des Systems zeigt der Befehl runlevel
an. Das Anlegen und Löschen dieser
Links wird bei der Installation der jeweiligen Dienste automatisch vorgenommen. Ein
installierter Dienst wird auf einem Debian System immer auch gestartet. Natürlich können
Links von Hand hinzugefügt oder entfernt werden, aber auch für diese Arbeiten am System
stellt Debian einige Werkzeuge zur Verfügung.
rcconf
ist ein einfaches Werkzeug, mit dem einzelne
Dienste aus den Init-Skripten aktiviert oder deaktiviert werden können. Es ist mit rcconf
nicht möglich, den Runlevel eines Dienstes zu bestimmen.
Leider werden bei einer Aktualisierung eines Paketes alle Links auf die Skripte
wieder hergestellt. Dies bedeutet auch, dass mittels rcconf
deaktivierte Dienste nach einem Update der
Software wieder aktiviert werden.
Detailliertere Einstellmöglichkeiten bietet update-rc.d
. Zunächst sollte
update-rc.d
in jedem Fall mit der Option -n
aufgerufen werden; diese zeigt lediglich an,
welche Aktionen durchgeführt werden sollen, lässt die entsprechenden Links aber
unangetastet.
usage: update-rc.d [-n] [-f] <basename> remove update-rc.d [-n] <basename> defaults [NN | sNN kNN] update-rc.d [-n] <basename> start|stop NN runlvl [runlvl] [...] . -n: not really -f: force
Grundsätzlich ist natürlich immer der Name des Pakets anzugeben, dessen
Init-Skripte angepasst werden sollen. Bei Verwendung der Option
remove
werden alle Links auf das entsprechende Skript
entfernt. Hierbei prüft
update-rc.d
, ob das Skript bereits entfernt wurde.
Ist dies nicht der Fall, so bricht update-rc.d
ab. Mit der Option -f
kann erzwungen werden, dass die Links auch bei
Vorhandensein eines Skriptes gelöscht werden.
Mit den Optionen start
, stop
bzw. defaults
werden die notwendigen Links angelegt,
gelöscht bzw. wiederhergestellt. Werden zusätzlich einer oder mehrere Runlevel angegeben, so können die Links entsprechend den Wünschen des
Systemadministrators angepasst werden.
Leider werden bei einer Aktualisierung eines Paketes alle Links auf die Skripte
wieder hergestellt. Dies bedeutet auch, dass mittels update-rc.d
deaktivierte Dienste nach einem Update
der Software wieder aktiviert werden.
Als Alternative zu den System-V-Init-Skripten steht das Paket file-rc
zur Verfügung. Bei diesem Paket wird die Konfiguration des Systemstarts
zentral in einer einzelnen Datei verwaltet. Natürlich kann nur ein Paket den
Systemstart steuern, so dass bei der Installation dieser für das System sehr
essenziellen Funktionen eine deutliche Warnung ausgegeben wird.
wasabi:~# apt-get install file-rc Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut... Fertig Die folgenden Pakete werden ENTFERNT: sysv-rc Die folgenden NEUEN Pakete werden installiert: file-rc WARNUNG: Die folgenden essenziellen Pakete werden entfernt. Die sollte NICHT geschehen, wenn Sie nicht genau wissen, was Sie tun! sysv-rc (wegen sysvinit) 0 aktualisiert, 1 neu installiert, 1 zu entfernen und 0 nicht aktualisiert. Es müssen 36,2kB Archive geholt werden. Nach dem Auspacken werden 4096B Plattenplatz freigegeben sein. Sie sind im Begriff, etwas potenziell Schädliches zu tun. Zum Fortfahren geben Sie bitte "Ja, tu was ich sage!" ein. ?] Ja, tu was ich sage! Hole:1 http://ftp.de.debian.org sarge/main file-rc 0.8.5 [36,2kB] Es wurden 36,2kB in 0s geholt (49,9kB/s) dpkg: sysv-rc: Abhängigkeitsproblem, aber lösche es auf Anfrage dennoch: sysvinit hängt ab von sysv-rc (>= 2.85-2) | file-rc (>> 0.7.0); aber: Paket sysv-rc soll gelöscht werden. Paket file-rc ist nicht installiert. (Lese Datenbank ... 43720 Dateien und Verzeichnisse sind derzeit installiert.) Entferne sysv-rc ... Wähle vormals abgewähltes Paket file-rc. (Lese Datenbank ... 43703 Dateien und Verzeichnisse sind derzeit installiert.) Entpacke file-rc (aus .../archives/file-rc_0.8.5_all.deb) ... Richte file-rc ein (0.8.5) ... wasabi:~#
file-rc
vereinheitlicht den Zugriff auf die
Init-Skripte der einzelnen Dienste, indem alle (bisher von sysv-rc
verwendeten) symbolischen Links entfernt
werden und die komplette Verwaltung über die Datei /etc/runlevel.conf
erfolgt.
# This file was automatically generated by /usr/share/file-rc/rclink2file.sh. # You can use your favourite editor or update-rc.d(8) to modify it. # Read runlevel.conf(5) man page for more information about this file. # # Format: # <sort> <off-> <on-levels> <command> 01 0,1,6 - /etc/init.d/gdm 02 - S /etc/init.d/mountvirtfs 05 - 1 /etc/init.d/single 05 - S /etc/init.d/bootlogd 05 - S /etc/init.d/initrd-tools.sh 05 - S /etc/init.d/keymap.sh 10 - 2,3,4,5 /etc/init.d/sysklogd 10 - S /etc/init.d/checkroot.sh 11 0,1,6 - /etc/init.d/cron 11 - 2,3,4,5 /etc/init.d/klogd 14 - 2,3,4,5 /etc/init.d/ppp 18 - 2,3,4,5 /etc/init.d/portmap 18 - S /etc/init.d/hwclockfirst.sh 19 0,6 - /etc/init.d/setserial 20 0,1,6 2,3,4,5 /etc/init.d/exim4 20 0,1,6 2,3,4,5 /etc/init.d/fam 20 0,1,6 2,3,4,5 /etc/init.d/inetd 20 0,1,6 2,3,4,5 /etc/init.d/lpd 20 0,1,6 2,3,4,5 /etc/init.d/makedev 20 0,1,6 2,3,4,5 /etc/init.d/ssh 20 - 0,6 /etc/init.d/sendsigs 20 - S /etc/init.d/modutils 21 - 2,3,4,5 /etc/init.d/nfs-common 25 0,6 - /etc/init.d/hwclock.sh 30 - 0,6 /etc/init.d/urandom 30 0,6 S /etc/init.d/etc-setserial 30 - S /etc/init.d/checkfs.sh 30 - S /etc/init.d/procps.sh 31 - 0,6 /etc/init.d/umountnfs.sh 32 - 0,6 /etc/init.d/portmap 35 - 0,6 /etc/init.d/networking 35 - S /etc/init.d/mountall.sh 36 - S /etc/init.d/discover 36 - S /etc/init.d/mountvirtfs 38 - S /etc/init.d/pppd-dns 39 - S /etc/init.d/dns-clean 39 - S /etc/init.d/ifupdown 40 - 0,6 /etc/init.d/umountfs 40 - S /etc/init.d/hostname.sh 40 - S /etc/init.d/hotplug 40 - S /etc/init.d/networking 43 - S /etc/init.d/portmap 45 - S /etc/init.d/mountnfs.sh 46 - S /etc/init.d/setserial 48 - S /etc/init.d/console-screen.sh 50 - S /etc/init.d/hwclock.sh 55 - S /etc/init.d/bootmisc.sh 55 - S /etc/init.d/urandom 70 - S /etc/init.d/nviboot 70 - S /etc/init.d/screen-cleanup 70 - S /etc/init.d/xfree86-common 79 0,1,6 - /etc/init.d/nfs-common 81 1 - /etc/init.d/portmap 86 0,1,6 - /etc/init.d/ppp 89 0,1,6 2,3,4,5 /etc/init.d/atd 89 0,1,6 - /etc/init.d/klogd 89 0,6 - /etc/init.d/hotplug 89 - 2,3,4,5 /etc/init.d/cron 90 0,1,6 - /etc/init.d/sysklogd 90 - 0 /etc/init.d/halt 90 - 6 /etc/init.d/reboot 99 - 2,3,4,5 /etc/init.d/gdm 99 - 2,3,4,5 /etc/init.d/rmnologin 99 - 2,3,4,5 /etc/init.d/stop-bootlogd # THE LAST LINE IS NEVER READ!
© 1999 - 2024 | Das Debian GNU/Linux Anwenderhandbuch von Frank Ronneburg steht unter einer Creative Commons Namensnennung-Nicht Kommerziell-Keine Bearbeitung 3.0 Deutschland Lizenz.