[linux-l] init.d

Matthias Kranz matthiaskranz at gmx.de
Di Jan 16 10:33:53 CET 2007


On Tue, 2007-01-16 at 00:47 +0100, Olaf Radicke wrote: 
> Ich muss gestehen, das ich mich in den 7 Jahren den ich mich mit Linux 
> beschäftige noch nie mit init.d/ auseinander gesetzt habe. Meine Frage: 
> Wie funktioniert das?
> 
> Ein Link zu einer knappen Zusammenfassung würde mir schon fast reichen.

Also ... am Anfang schuf Gott Himmel und Erde ... okay, sparen wir uns
das.

Im Laufe des Boot-Prozesses überträgt der Kernel die Kontrolle an den
init-Prozess, der wiederum im weiteren Verlauf der Vater bzw. Großvater
aller kommenden Prozesse wird.

Welches konkrete Skript als nächstes ausgeführt wird, hängt von der
Distribution ab und wird über die "/etc/inittab" gesteuert. Auf meinem
Fedora/RHEL wird als erstes "/etc/rc.d/rc.sysinit" ausgeführt. In der
"inittab" wird auch der Runlevel definiert, in den das System gestartet
werden soll (-> initdefault). Für jeden Runlevel gibt es nun ein
passendes Verzeichnis unter "/etc/rc.d/rc<LEVEL>/". Alle dort
befindlichen Einträge, die mit einem 'S' beginnen, werden gestartet,
alle mit einem 'K' beginnenden gestoppt. Die Zahl nach dem 'S' oder 'K'
ermöglicht eine Reihenfolge - je niedriger die Zahl desto früher wird
die Datei aufgerufen.
Um nicht ein und dasselbe Skript in mehreren Runlevels vorzuhalten,
werden symbolische Links verwendet, die wiederum auf das eigentliche
Skript in /etc/init.d/ verweisen. Die Skripte dort sollten alle mit
bestimmten Argumenten umgehen können [1]. Die wichtigsten sind natürlich
"start" und "stop", aber auch "restart" und "reload" werden häufig
verwendet.
Das Management der Skripte und Einträge in den Runlevels kann man
inzwischen auf vielen Distributionen mit "chkconfig" und anderen Tools
erledigen.

[1]
http://refspecs.freestandards.org/LSB_3.1.0/LSB-Core-generic/LSB-Core-generic/tocsysinit.html

> Ich lasse aus Bequemlichkeit von init.d meine Postgres-DB hochfahren. 
> Beider Standartkonfiguration für init.d (der PG-DB) fehlt aber der 
> Parameter "-i". ich hatte mich durch das shell-Skript gewühlt und 
> einfach auf Verdacht an dieser und jener stelle ein "-i" 
> reingeschrieben bis es funktioniert hat.

Liebe Kinder zu Hause: Nicht nachmachen!

Matthias
-- 
Matthias Kranz
Berlin/München
http://mkr.oerks.de




Mehr Informationen über die Mailingliste linux-l