[linux-l] init.d
Steffen Dettmer
steffen at dett.de
Di Jan 16 21:12:08 CET 2007
Dann muss ich meinen Senf auch noch dazu geben.
* Matthias Kranz wrote on Tue, Jan 16, 2007 at 10:33 +0100:
> 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.
Och, jetzt haste kurz vor der Schuldfrage aufgehört! Also, wie war das
mit dem Apfel? :)
> 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.
(Was strenggenommen vom verwendeten init abhängt ;))
> 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.
Früher gabs mal ein shell-Script als /bin/init, dass machte beim Start
ziemlich genau:
for SCRIPT in /etc/rc.d/rc${runlevel}.d/S* ; do
$SCRIPT start
done
Zum Üben müsste man vielleicht mal wieder so ein Shell-Linux rauskramen
und aktualisieren. Ist bestimmt interessant, wie einfach bestimmte
Sachen gehen.
> 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.
Huch, chkconfig wird ja doch genannt. Na ja, hätte ich das gleich
gesehen, hätte ich diese Mail nicht geschrieben :-)
Gut, dann nenne ich mal noch "insserv".
Sowas braucht man, damit Packages beim Installieren einfach ihre
Services hinzufügen können (ohne in rc-File .confs rum-sed'n zu müssen
;) SCNR).
> > 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!
Genau, denn wenn ein "rm" vorn steht, nimmt man nicht "-i" sondern
"-rf". (Und wer das glaubt, sollte sofort sämtliche root-Passwörter
vergessen.)
oki,
Steffen
--
Dieses Schreiben wurde maschinell erstellt,
es trägt daher weder Unterschrift noch Siegel.
Mehr Informationen über die Mailingliste linux-l