Die Verzeichnisse rc0.d,rc1.d,... in /etc

Die Verzeichnisse rc0.d,rc1.d,... in /etc

Ich verwende Ubuntu, wo ich die Verzeichnisse /etc/rc0.d, /etc/rc1.d, /etc/rc2.d, ..., habe /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:

  1. Was ist der Zweck der mehreren „rc“-Verzeichnisse?
  2. Warum hat Ubuntu Duplikate von dovecotund ntpin alle Verzeichnisse außer rc0.dund installiert rc6.d?
  3. Wenn sie wie oben mehrfach angegeben werden, werden sie dann tatsächlich mehrfach ausgeführt?
  4. Können Sie aus dem Obigen erkennen, in welcher Reihenfolge dovecotdie ntpAusführung beim Start erfolgt?
  5. Wie kann man Ubuntu richtig anweisen, ntpvor dovecotdem Start immer eine Ausführung durchzuführen?

Antwort1

Wie andere bereits bemerkt haben, dreht sich die Antwort umRunlevelDies sind im Wesentlichen die Betriebsmodi eines Betriebssystems. Unter Linux sind dies normalerweise:

ID  Name                               Description
0   Halt                               Shuts down the system.
1   Single-user Mode                   Mode for administrative tasks.
2   Multi-user Mode                    Does not configure network interfaces and 
                                       does not export networks services.
3   Multi-user Mode with Networking    Starts the system normally.
4   Not used/User-definable            For special purposes.
5   Start the system normally with 
    with GUI                           As runlevel 3 + display manager.
6   Reboot                             Reboots the system.

Jedes der rcNVerzeichnisse enthält symbolische Links zu den Skripten, die auf diesem Runlevel ausgeführt werden sollen. Alle eigentlichen Skripte befinden sich normalerweise im /etc/init.dVerzeichnis:

$ ls -l /etc/rc5.d/S22cron
lrwxrwxrwx 1 root root 14 Jan 14  2013 /etc/rc5.d/S22cron -> ../init.d/cron

Symbolische Linkbenennung

Ein symbolischer Link, dessen Name mit einem beginnt, Swird auf dem entsprechenden Runlevel gestartet, während diejenigen, deren Name mit beginnt, Kbeendet werden. Beachten Sie, dass alle Links in rc6.d, dem Neustart-Runlevel, mit beginnen K. Das liegt daran, dass sie alle für einen Neustart gestoppt werden sollten und nichts gestartet werden sollte.

Die Zahlen nach dem Anfangsbuchstaben beziehen sich auf die Ausführungsreihenfolge der verknüpften Skripte. Die Skripte mit den kleineren Zahlen werden vor denen mit den höheren Zahlen ausgeführt. In Ihrem konkreten Beispiel S23ntpwird also ausgeführt (in diesem Fall gestartet)Vor S24dovecot.

Antwort2

  1. Dies sind runlevels und sind eine System V-artige Initiierung, die von den meisten *NIX-Systemen verwendet wird (mit der bemerkenswerten Ausnahme von systemd-basierten Systemen). Beim Booten entscheidet der Kernel/Benutzer, was runlevelausgeführt werden soll, und führt nur das aus runlevel. Das bedeutet, dass runlevelSie je nach mit einem anderen Satz von Programmen booten können. Es gibt auch Runlevels für Anhalten und Neustarten, aber da Sie sich auf den Startteil konzentrieren, ignorieren wir diese vorerst.
  2. Da runlevelbeim Booten nur einer ausgeführt wird, sollten/möchten einige Programme an verschiedenen runlevelStellen mit unterschiedlichen oder gleichen Parametern in derselben oder einer anderen Reihenfolge gestartet/gestoppt werden (nicht alle Runlevel sind in allen Betriebssystemen gleich). Aber Ubuntu kopiert die Runlevel 3-5 von 2, deshalb sind sie gleich.
  3. Nr. runlevels werden nur einmal beim Start oder beim Ändern ausgeführt runlevel.
  4. ntpSkripte sollten zuerst dovecotin den Runleveln 2-5 ausgeführt werden, was bei Runlevel 1 nicht der Fall ist. Die Ordnungszahl in den Skriptnamen ( ) gibt die Reihenfolge der Ausführung an. Es hängt also alles von dem von Ihnen verwendeten Runlevel ab.S23ntp
  5. Es hängt von der Distribution ab, aber im speziellen Fall von Ubuntu können Sie Ihr Skript zu Runlevel 1 und 2 hinzufügen.

Mehr Infos imWikipediaArtikel über Ubuntu-Runlevel

Antwort3

1) Die mehreren rcX.d-Verzeichnisse geben an, welche Dienste während des Runlevels „X“ gestartet oder gestoppt werden sollen.

2) rc0.d ist für Runlevel 0, also Herunterfahren. rc6.d ist für Neustart. Der Rest ist für verschiedene Runlevel (2 - 5). Das S steht für Start und das K für Kill. Dies sind im Wesentlichen Links zu den Originalskripten in /etc/rc.d. Die Zahlen nach S/K geben die Priorität an, mit der die Dienste gestartet/beendet werden.

3) Ja, wenn sie mehrfach angegeben werden, wird das Start-/Kill-Skript mehrfach ausgeführt. Aber das möchte niemand.

4) Unter Berücksichtigung der Prioritätszahlen wird zuerst der NTP-Dienst und dann Dovecot gestartet.

5) Der 4. Punkt ist der Weg.

verwandte Informationen