Lösung 1:
"d" steht für Verzeichnis und ein solches Verzeichnis ist eine Sammlung von Konfigurationsdateien, die oft Fragmente sind, die in der Hauptkonfigurationsdatei enthalten sind. Der Punkt ist, Konfigurationsbedenken zu unterteilen, um die Wartbarkeit zu verbessern.
Wenn Sie eine Unterscheidung wie /etc/httpd/conf
haben gegenüber /etc/httpd/conf.d
, ist es normalerweise so, dass /etc/httpd/conf
enthält verschiedene Arten von Konfigurationsdateien, während eine .d
Das Verzeichnis enthält mehrere Instanzen desselben Konfigurationsdateityps (z. B. „zu ladende Module“, „zu aktivierende Sites“ usw.), und der Administrator kann nach Bedarf hinzufügen und entfernen.
Lösung 2:
Die Hauptantriebskraft hinter der Existenz dieser Verzeichnisnamenskonvention ist die einfachere Paketverwaltung von Konfigurationsdateien. Ob es nun rpm, deb oder was auch immer ist, es ist viel einfacher (und wahrscheinlich sicherer), eine Datei in ein Verzeichnis ziehen zu können, sodass sie automatisch in die Konfiguration eines Programms aufgenommen wird, anstatt zu versuchen, eine globale Konfigurationsdatei zu bearbeiten.
Ein gutes Beispiel dafür ist logrotate. Im Verzeichnis /etc/logrotate.d sind Konfigurationsdateien für praktisch jede von Ihnen installierte Anwendung, die ein Protokoll in /var/log führt . Einige sind in der Syslog-Konfiguration gebündelt, da fast jedes System eine Nachrichten-, Wtmp- und Lastlog-Datei hat. Aber wenn Sie Apache auf Ihrem System installieren, brauchen Sie eine einfache Möglichkeit, die Konfiguration zum Rotieren der Apache-Protokolle automatisch hinzuzufügen, also legt es einfach eine Konfigurationsdatei namens httpd in /etc/logrotate.d ab und logrotate ist so konfiguriert, dass die Dateien in diesem Verzeichnis enthalten sind. Jeder gehört dem Paket für den Daemon, und wenn Sie das Paket entfernen, wird die Datei entfernt. Es ist im Grunde eine Möglichkeit, Konfigurationsdateien zu modularisieren. Beachten Sie, dass dies vom Programm unterstützt werden muss, es ist nichts Automatisches, das das System für Sie erledigt oder so. Normalerweise haben Programme, die dies tun, eine Konfigurationsdirektive namens include die angeben, wo sich dieses Verzeichnis im Dateisystem befindet.
logrotate.d könnte sogar der erste Ort sein, an dem diese Konvention außerhalb von init.d verwendet wurde und rc.d Verzeichnisse für Init-Skripte.