Init-Skript
Init-Skript
Debian
Nach dem Laden des Linux-Kernels wird als erstes Programm überhaupt das Programm init gestartet - dieses 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" 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 (bei Debian ist dies üblicherweise "N 2"). 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.
Startreihenfolge
Die Startreihenfolge wird durch folgende Dateien beeinflusst.
/etc/init.d/.depend* | Diese Dateien werden durch die Headerinformationen in den Startskripten erzeugt. Nicht händisch anpassen! |
---|---|
/etc/init.d/rc | Hier gibt es den Abschnitt "parallel booting":
# # Check if we are able to use make like booting # test -s /etc/init.d/.depend.start || RUN_PARALLEL="no" test -s /etc/init.d/.depend.stop || RUN_PARALLEL="no" test "$DO_CONFIRM" = "yes" && RUN_PARALLEL="no" type -p startpar &> /dev/null || RUN_PARALLEL="no" startpar -v &> /dev/null || RUN_PARALLEL="no" |
Die Header der anderen Startskripte. (alternativ /etc/init.d/skeleton) |
Wenn ein Dienst also nach xinetd gestartet werden soll, so muss das Skript "rc.local" folgende Abhängigkeit enthalten:
### BEGIN INIT INFO # Provides: rclocal # Required-Start: xinetd # Required-Stop: # Should-Start: # Should-Stop: # Default-Start: 3 5 # Default-Stop: 0 1 2 6 # Description: <Wasauchimmer rclocal macht> ### END INIT INFO
Danach muss dass Ganze mit chkconfig in den Start aufgenommen oder herausgenommen werden (z. B. chkconfig -a rclocal).
Dazu sollten aber die bisherighen Links gelöscht werden.
# /etc/init.d/rc?.d/*rclocal