Quelle est la différence entre / etc / init / et /etc/init.d/?

216

Quelle est la différence entre /etc/init/ et /etc/init.d/ ?

Plus généralement, quelle est la signification du suffixe .d dans un répertoire?

    
posée Olivier Lalonde 02.10.2010 - 00:59
la source

3 réponses

216

/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 programme init (le premier processus exécuté à la fin de l'initialisation du noyau), ainsi que certaines infrastructures permettant de démarrer et d'arrêter les services et de les configurer. Plus précisément, les fichiers dans /etc/init.d sont des scripts shell qui répondent aux commandes start , stop , restart et (lorsque supporté) reload pour gérer un service particulier. Ces scripts peuvent être invoqué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 progiciel de gestion des services pour jeunes proposé par Ubuntu. Les fichiers dans /etc/init sont des fichiers de configuration indiquant à quel moment et à quel moment start , stop , reload la configuration, ou interrogent status d'un service. Comme pour lucid, Ubuntu est en train de passer de SysVinit à Upstart, ce qui explique pourquoi de nombreux services sont fournis 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épertoires indique généralement un répertoire contenant de nombreux fichiers de configuration ou scripts pour une situation particulière (par exemple, /etc/apt/sources.list.d contient des fichiers concaténés pour créer un sources.list virtuel; /etc/network/if-up.d contient des scripts exécutés lorsque un réseau i nter f a est activé). Cette structure est généralement utilisée lorsque chaque entrée du répertoire est fournie par une source différente, de sorte que chaque package peut déposer son propre plug-in sans avoir à analyser un seul fichier de configuration pour se référencer. Dans ce cas, il se trouve que "init" est un nom logique pour le répertoire, SysVinit est venu en premier et a utilisé init.d , et Upstart a utilisé plain init pour un répertoire ayant un objectif similaire ( ", Et peut-être moins arrogant, s’ils avaient plutôt utilisé /etc/upstart.d ).

¹ sans compter initrd

    
réponse donnée Gilles 02.10.2010 - 01:28
la source
26

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é divisé en plusieurs fichiers pour des raisons de commodité. , mais qui devrait être inclus ou exécuté 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, tel que "00-default" ou "80-user". / p>

Dans le cas de /etc/init.d/ , cela indique que les scripts dans "init.d" doivent tous être exécutés. De nos jours, le système d'initialisation des systèmes d'exploitation modernes est un peu plus complexe que cela, mais le nom du répertoire est toujours là.

    
réponse donnée thomasrutter 10.05.2013 - 04:51
la source
12

Comme vous le soulignez, la nomenclature ".d" est curieuse et étrange, et n’a vraiment pas sa place dans un système moderne - vous remarquerez que la plupart des services modernes ont tendance à l’abandonner.

La raison pour laquelle le répertoire est /etc/init et non /etc/upstart est parce que Upstart est le nom du projet, le binaire réel installé est toujours /sbin/init , donc il serait illogique que sa configuration ait un nom qui ne soit pas correspond au binaire.

    
réponse donnée Scott 13.10.2010 - 03:59
la source

Lire d'autres questions sur les étiquettes