Ich bin mit Ubuntu , wo ich die Verzeichnisse haben /etc/rc0.d
, /etc/rc1.d
, /etc/rc2.d
, ..., /etc/rc6.d
.
Beispieldateien von meinem Computer:
directory example symlinks in the dir
------------------------------------------
/etc/rc1.d: K76dovecot, K77ntp
/etc/rc2.d: S23ntp, S24dovecot
/etc/rc3.d: S23ntp, S24dovecot
/etc/rc4.d: S23ntp, S24dovecot
/etc/rc5.d: S23ntp, S24dovecot
Fragen:
- Was ist der Zweck der mehreren "rc" -Verzeichnisse?
- Warum hat Ubuntu Duplikate von
dovecot
undntp
in alle Verzeichnisse außerrc0.d
und installiertrc6.d
? - Wenn sie wie oben mehrfach angegeben wurden, werden sie tatsächlich mehrfach ausgeführt?
- Kannst du aus dem Obigen in welcher Reihenfolge erkennen
dovecot
undntp
beim Start ausführen? - Was ist der richtige Weg, um Ubuntu anzuweisen, immer
ntp
vor demdovecot
Start ausgeführt zu werden?
services
init-script
init.d
roger.james
quelle
quelle
Wie andere angemerkt haben, dreht sich die Antwort um Runlevel, die im Grunde die Betriebsmodi eines Betriebssystems sind. Unter Linux sind dies normalerweise:
Jedes der
rcN
Verzeichnisse enthält also symbolische Links zu den Skripten, die auf diesem Runlevel ausgeführt werden sollen. Alle aktuellen Skripte befinden sich normalerweise im/etc/init.d
Verzeichnis:Symbolische Linkbenennung
Eine symbolische Verknüpfung, deren Name mit einem beginnt,
S
wird auf dem betreffenden Runlevel gestartet, während diejenigen getötet werden, deren Name mit einem beginntK
. Beachten Sie, dass alle Links imrc6.d
Runlevel für den Neustart mit beginnenK
. Das liegt daran, dass sie alle für einen Neustart angehalten werden sollten und nichts gestartet werden sollte.Die Zahlen nach dem Anfangsbuchstaben beziehen sich auf die Ausführungsreihenfolge der verknüpften Skripte. Diejenigen mit kleineren Nummern werden vor denjenigen mit höheren Nummern ausgeführt. So wird in Ihrem konkreten Beispiel
S23ntp
(in diesem Fall gestartet) vorher ausgeführtS24dovecot
.quelle
S01bluetooth
undS01rsync
, wird die Reihenfolge beliebig sein?S01
dem Vergleich beginnen werdenb
<r
, bekommen Sie die Idee. Vielleicht!/etc/init.d/rc
sagtfor s in /etc/rc$runlevel/S*; do …
, so geht es einfach in globaler Expansionsreihenfolge; dh numerisch / alphabetisch. Die lange Antwort ist, dass der Code dort viel komplizierter ist, als ich mich erinnere. Ich werde versuchen, es in den nächsten sechs bis acht Wochen ernsthaft zu studieren. Auf den ersten Blick sieht es aus wie es die Zahl nach dem ExtrahierenS
und etwas zu tun , damit, soS42beeblebrox
undS42zaphod
vielleicht stärker als in Verbindung gebracht werden, sagen wir,S43arthur
undS44dent
.1) Die mehreren Verzeichnisse rcX.d geben an, welche Dienste während des Runlevels 'X' gestartet oder gestoppt werden sollen.
2) rc0.d ist für Runlevel 0, das heruntergefahren wird. rc6.d dient zum Neustart. Rest sind alle für verschiedene Runlevel (2 - 5). Das S steht für Start und K für Kill. Dies sind im Wesentlichen Links zu den Originalskripten in /etc/rc.d. Die Nummern nach S / K sind die Priorität, mit der die Dienste gestartet / beendet werden.
3) Ja, wenn sie mehrmals angegeben werden, wird das Start / Kill-Skript mehrmals ausgeführt. Aber niemand will das tun.
4) Wenn Sie sich die Prioritätsnummern ansehen, wird zuerst der ntp-Dienst gestartet, gefolgt von dovecot.
5) Der vierte Punkt ist der Weg.
quelle