Et quelle est la différence entre /etc/init/
et /etc/init.d/
?
Plus généralement, quelle est la signification du .d
suffixe dans un répertoire?
Et quelle est la différence entre /etc/init/
et /etc/init.d/
?
Plus généralement, quelle est la signification du .d
suffixe dans un répertoire?
Réponses:
/etc/init.d
contient les scripts utilisés par les outils d'initialisation System V (SysVinit). Il s'agit du package de gestion de services traditionnel pour Linux, contenant le init
programme (le premier processus exécuté lorsque le noyau a fini de s'initialiser¹), ainsi que d'une infrastructure permettant de démarrer et d'arrêter des services et de les configurer. Plus précisément, les fichiers /etc/init.d
sont des scripts shell qui répondent à start
, stop
, restart
et (lorsque pris en charge) des reload
commandes pour gérer un service particulier. Ces scripts peuvent être appelés directement ou (le plus souvent) via un autre déclencheur (généralement la présence d'un lien symbolique dans /etc/rc?.d/
).
/etc/init
contient les fichiers de configuration utilisés par Upstart. Upstart est un nouveau progiciel de gestion de services défendu par Ubuntu. Les fichiers dans /etc/init
des fichiers de configuration disant Upstart comment et quand start
, stop
, reload
la configuration, ou interroger le status
d'un service. À partir de lucid, Ubuntu est en train de passer de SysVinit à Upstart, ce qui explique pourquoi de nombreux services sont livrés avec des scripts SysVinit même si les fichiers de configuration Upstart sont préférés. En fait, les scripts SysVinit sont traités par une couche de compatibilité dans Upstart.
.d
dans les noms de répertoire indique généralement un répertoire contenant plusieurs fichiers de configuration ou des scripts pour une situation particulière (par exemple , /etc/apt/sources.list.d
contient des fichiers qui sont concaténées pour faire un virtuel sources.list
, /etc/network/if-up.d
contient des scripts qui sont exécutés lorsqu'un réseau i nter f ace est activé). Cette structure est généralement utilisée lorsque chaque entrée du répertoire est fournie par une source différente, afin que chaque package puisse déposer son propre plug-in sans avoir à analyser un seul fichier de configuration pour se référencer lui-même. Dans ce cas, il se trouve que “init” est un nom logique pour le répertoire, que SysVinit est arrivé en premier et utilisé init.d
, et que Upstart a été utilisé simplement.init
pour un répertoire avec un but similaire (il aurait été plus «traditionnel», et peut-être moins arrogant, s'ils l'avaient utilisé à la /etc/upstart.d
place).
¹ sans compter initrd
upstart
ou sysvinit
. Et dans les versions récentes, cela pourrait être systemd
aussi bien (ce qui n'existait pas pour Ubuntu à l'époque où j'ai écrit ma réponse). C'est le paquet qui fournit /sbin/init
( dpkg -S /sbin/init
).
upstart
package qui fournit / sbin / init (run dpkg -S /sbin/init
). Mais Bitnami a placé son script dans le répertoire /etc/init.d. Cela n’est-il pas contradictoire avec votre réponse à @AsheeshR ci-dessus? Je vous remercie.
Le ".d" est généralement ajouté à un nom de répertoire pour indiquer que ce qui était (ou aurait pu être) traité par un seul script ou un seul fichier de configuration a été scindé en plusieurs fichiers pour des raisons de commodité. doivent être inclus ou exécutés ensemble.
Par exemple, /etc/apache/conf.d/
ou/etc/apt/sources.d/
Dans les cas où il est important de savoir dans quel ordre ils doivent être inclus / exécutés, les fichiers de ces répertoires commencent parfois par un numéro, comme "00-default" ou "80-user", afin de s'exécuter dans le bon ordre.
Dans le cas /etc/init.d/
contraire, cela signifie que les scripts de "init.d" doivent tous être exécutés. De nos jours, cependant, le système init des systèmes d'exploitation modernes est un peu plus compliqué que cela, mais le nom du répertoire est toujours là.
.d
moyen utilisé est lié à un processus de «démon» qui est normalement démarré au démarrage.
Comme vous l'avez fait remarquer, la nomenclature ".d" est déroutante et étrange et n'a pas sa place dans aucun système moderne - vous remarquerez que la plupart des services modernes ont tendance à la laisser tomber.
La raison pour laquelle le répertoire est /etc/init
et n'est pas /etc/upstart
parce qu'Uststart est le nom du projet, le binaire réellement installé est /sbin/init
donc il ne serait pas logique que sa configuration ait un nom qui ne correspond pas au binaire.
rules.d
, Xorg's relativement récent xorg.conf.d
, pas trop vieux, /etc/profile.d
etc.
.d
répertoires entrés avec System V. C'était une notation déroutante à l'époque, et finalement probablement l'idée d'une personne qui est entrée dans la base de code et ne pouvait pas partir. Par exemple, si vous pensez quecat
c'est un mauvais nom pour la tâche à accomplir, imaginez combien de fichiers du système vous devez toucher pour les modifier.