luchs3 hat geschrieben:
Wo ist eigentlich der Unterschied zwischen /etc/init.d/ und /etc/event.d/?
Hm, das ist etwas kompliziert, weil das alles gerade im Umbruch ist. Bis vor kurzem wurde das sogenannte SysVInit-System verwendet. Das definierte fünf sogenannte Runlevel (+ ein paar spezielle - 0 für den Shutdown, 6 für den Neustart und S für den Single-User-/Wartungsmodus). Theoretisch konnte man also fünf verschiedene Zustände definieren, und dann mit Hilfe des Befehls init zwischen diesen wechseln. Auf Redhat-Systemen war das z.B. immer so, dass 1 der Runlevel ohne Netzwerk war, 2 mit Netzwerk, und 5 mit grafischer Oberfläche. Debian-Derivate haben das aber nie benutzt, sondern immer nur S (Single-User) und 2 (normaler Betrieb).
Das Programm selber wurde durch die /etc/inittab gesteuert. Dort stand dann unter anderem drin, was init beim Runlevel-Wechsel jeweils machen sollte (nämlich die Skripte in den jeweiligen Verzeichnissen ausführen), und welche Programme sonst noch dauerhaft laufen sollten. (Hauptsächlich eben die Getty-Prozesse auf den Terminals.) Oder was passieren soll, wenn man CtrlAltDel drückt. Theoretisch hätte man alles in die inittab eintragen können, aber zum einen konnte man da keine Reihenfolge definieren, in welcher die Befehle ausgeführt werden sollen, und zum anderen ist das nicht sehr paketmanager-freundlich, immer eine einzelne Datei zu editieren.
Weil das System aber schon ziemlich in die Jahre gekommen war und sich teilweise als ineffizient erwiesen hatte, beschloss Ubuntu, es durch das selbstentwickelte Upstart-Projekt zu ersetzen. Dieses vereint die Möglichkeiten der inittab und der Runlevel in einem, in dem es Dateien in /etc/event.d zur Konfiguration benutzt, in denen sowohl sowas wie respawn angegeben werden kann, als auch welche Dienste z.B. erst gestartet werden müssen, bevor ein Skript ausgeführt wird. Also kein linearer Ablauf, wie bei SysV im Runlevel, sondern ein Beziehungsgeflecht untereinander.
Da das aber Modifikationen in jedem Software-Paket mit sich zieht, was eine längerfristige Arbeit darstellt, hat man sich erstmal darauf beschränkt, in /etc/event.d Dateien für die jeweiligen Runlevel anzulegen, die dann genau wie bei SysV die Startskripte in der festgelegten Reihenfolge ausführen. Ob bzw. wann das endgültig umgestellt wird, weiß ich jetzt nicht.
Also wenn du respawn brauchst, solltest du /etc/event.d benutzen. Wenn man etwas hat, wo als Voraussetzung schon etwas anderes vorher passiert sein sollte, muss man z.Zt. ein RC-Skript verwenden.