Ich möchte ein Sysvinit-Skript vor einem anderen ausführen und herausfinden, wie das geht.
Um sicherzustellen, dass dies tatsächlich in der Reihenfolge geschieht, die ich mag, möchte ich eine Liste sehen, in welcher Reihenfolge dies geschieht.
Ich habe es sudo insserv --showall
bereits gefunden , kann es aber nicht nachvollziehen, da es Init-Skripte mehrfach auflistet.
Wie kann man herausfinden, in welcher Reihenfolge /etc/init.d-Skripte auf Debian geladen sind?
Antworten:
Es gibt einige Dateien im Verzeichnis /etc/init.d/:
Wann immer Sie ausführen
update-rc.d
, ändern sich die Dateien..depend.boot
Datei ist fürS
Level,.depend.start
ist für2 3 4 5
Level und.depend.stop
für0 1 6
.In meinem Fall habe ich folgende Reihenfolge in
.depend.start
:Sie können auch sehen, warum die Bestellung wie oben dargestellt ist. Jede nächste Zeile sieht folgendermaßen aus:
was bedeutet , dass
cgrulesengd
Bedürfnissersyslog
cgconfig
der vorherigen gestartet werden.quelle
Für jedes Runlevel (0 6) gibt es einen Ordner /etc/rc[N‹.d
In jedem Verzeichnis gibt es symbolische Verknüpfungen, die entweder mit einem "S" oder mit einem "K" beginnen. "S" zum Starten und "K" zum Stoppen. Die Skripte werden in einer lexikalischen Sortierweise des Dateinamens ausgeführt , mit anderen Worten, S10script wird zuerst ausgeführt als S20myscript. Zum Beispiel :
Wir haben zwei einfache Skripte, das Skript second.sh muss nach dem Skript fist.sh im aktuellen Runlevel ausgeführt werden.
Was ist mein aktuelles Level?
Jetzt brauchen wir einen symbolischen Link, der mit S (N) myScript für das erste und S (N + 1) mysecondScript beginnt:
Wir können das Meldungsprotokoll neu starten und überprüfen:
Getestet auf alten Centos5
quelle