Question Que signifie le suffixe .d dans Linux?


Je configure apache et par défaut, j'ai les répertoires /etc/httpd/conf et /etc/httpd/conf.d. Quelle est la différence?

Aussi, vous pouvez voir le suffixe dans de nombreux autres répertoires comme /etc/init.d, /etc/cron.d, etc...


30
2018-02-25 08:50


origine


cela signifie qu'il fait référence à un démon - dynamic
dupe: askubuntu.com/questions/7648/… - Sirex
@ yes123: Cette théorie ne cadre pas bien avec /etc/apt/sources.list.d/, /etc/profile.d etc - Martin
D'après les réponses données par Haakon et Deltaray, je me demande si .d représente default. Ce n'est pas, selon les informations ici, mais cela semble logique. Peut-être que je peux aller de l'avant et penser de cette façon? - Smandoli


Réponses:


"d" signifie répertoire et un tel répertoire est un ensemble de fichiers de configuration qui sont souvent des fragments inclus dans le fichier de configuration principal. Le but est de compartimenter les problèmes de configuration pour augmenter la maintenabilité.

Lorsque vous avez une distinction telle que /etc/httpd/conf contre /etc/httpd/conf.d, c’est généralement le cas que /etc/httpd/conf contient différents types de fichiers de configuration, alors qu’un .d Le répertoire contient plusieurs instances du même type de fichier de configuration (par exemple, "modules à charger", "sites à activer", etc.). L'administrateur peut ajouter et supprimer des éléments si nécessaire.


41
2018-02-25 08:55



mais conf est aussi un répertoire, donc si les deux sont des répertoires, quelle est la différence? Vous avez raison à propos de ServerFault, est-il possible de le déplacer? - SCL
Ajout d'un peu sur la distinction, espérons que ce n'est pas complètement déroutant :-) - Haakon
Les répertoires .d sont également chargés automatiquement. Par exemple, cron vérifiera cron.d et analysera tous les fichiers qu'il contient. La configuration principale d'Apache aura quelque chose comme "include conf.d / *" qui inclura tous les fichiers de conf.d lors du rechargement. C'est aussi très pratique pour la gestion de paquets de modules. Le gestionnaire de paquets n'a pas à tenter de modifier les fichiers, il a simplement déposé la configuration du module dans le répertoire .d approprié, puis a rechargé le service. - Niall Donegan


L’existence de cette convention de dénomination de répertoire est principalement motivée par la gestion plus facile des paquets de fichiers de configuration. Qu'il s'agisse de rpm, deb ou autre, il est beaucoup plus facile (et probablement plus sûr) de pouvoir déposer un fichier dans un répertoire afin de l'inclure automatiquement dans la configuration d'un programme au lieu d'essayer de modifier un fichier de configuration global.

Logrotate en est un bon exemple. Dans l'annuaire /etc/logrotate.d sont des fichiers de configuration pour pratiquement toutes les applications que vous avez installées et qui tiennent un journal / var / log. Certains sont regroupés dans la configuration de syslog car presque tous les systèmes ont un fichier de messages, wtmp et lastlog. Mais si vous installez Apache sur votre système, vous avez besoin d’un moyen simple d’ajouter automatiquement la configuration pour la rotation des journaux d’Apache. Il suffit donc de déposer un fichier de configuration appelé httpd dans /etc/logrotate.d et logrotate est configuré pour inclure les fichiers dans ce répertoire. Chaque paquet appartient au paquet du démon et si vous supprimez le paquet, le fichier sera supprimé. C'est fondamentalement un moyen de modulariser les fichiers de configuration. Notez que cela doit être pris en charge par le programme, ce n'est pas quelque chose d'automatique que le système fait pour vous ou quelque chose. Habituellement, les programmes qui le font ont une directive de configuration appelée comprendre qui spécifient où se trouve ce répertoire sur le système de fichiers.

logrotate.d pourrait même être le premier endroit où cette convention a été utilisée en dehors de la init.d et rc.d répertoires pour les scripts d'initialisation.


13
2018-02-25 20:12