¿Cuál es la diferencia entre /etc/init/
y /etc/init.d/
?
En términos más generales, ¿qué significado .d
transmite el sufijo a un directorio?
fuente
¿Cuál es la diferencia entre /etc/init/
y /etc/init.d/
?
En términos más generales, ¿qué significado .d
transmite el sufijo a un directorio?
/etc/init.d
contiene scripts utilizados por las herramientas de inicio de System V (SysVinit). Este es el paquete de administración de servicios tradicional para Linux, que contiene el init
programa (el primer proceso que se ejecuta cuando el kernel ha terminado de inicializarse), así como cierta infraestructura para iniciar y detener servicios y configurarlos. En concreto, los archivos de /etc/init.d
scripts de shell que responden a start
, stop
, restart
, y (cuando sea compatible) reload
los comandos para gestionar un servicio en particular. Estas secuencias de comandos se pueden invocar directamente o (más comúnmente) a través de algún otro desencadenante (generalmente, la presencia de un enlace simbólico /etc/rc?.d/
).
/etc/init
contiene archivos de configuración utilizados por Upstart. Upstart es un paquete de gestión de servicios joven defendido por Ubuntu. Los archivos en /etc/init
son archivos de configuración contando Upstart cómo y cuándo start
, stop
, reload
la configuración, o consultar la status
de un servicio. A partir de lucid, Ubuntu está haciendo la transición de SysVinit a Upstart, lo que explica por qué muchos servicios vienen con scripts de SysVinit a pesar de que se prefieren los archivos de configuración de Upstart. De hecho, los scripts SysVinit son procesados por una capa de compatibilidad en Upstart.
.d
en los nombres de directorio indica típicamente un directorio que contiene muchos archivos de configuración o secuencias de comandos para una situación particular (por ejemplo, /etc/apt/sources.list.d
contiene archivos que se concatenan para hacer una virtual sources.list
; /etc/network/if-up.d
contiene secuencias de comandos que se ejecutan cuando una red i nter f ace se activa). Esta estructura se usa generalmente cuando cada entrada en el directorio es proporcionada por una fuente diferente, de modo que cada paquete puede depositar su propio complemento sin tener que analizar un solo archivo de configuración para hacer referencia a sí mismo. En este caso, simplemente sucede que "init" es un nombre lógico para el directorio, SysVinit vino primero y se usó init.d
, y Upstart usó sin formatoinit
para un directorio con un propósito similar (habría sido más "convencional", y quizás menos arrogante, si hubieran usado en su /etc/upstart.d
lugar).
¹ sin contar initrd
.d
directorios ingresaron con el Sistema V. Era una notación desconcertante y, en última instancia, probablemente la idea de una persona que entró en la base de código y no pudo salir. Por ejemplo, si cree quecat
es un mal nombre para la tarea que realiza, imagine cuántos archivos en todo el sistema tendría que tocar para cambiarlo.upstart
osysvinit
. Y en versiones recientes, podría sersystemd
así (que no existía para Ubuntu cuando escribí mi respuesta). Es el paquete que proporcione/sbin/init
(dpkg -S /sbin/init
).upstart
paquete el que proporciona / sbin / init (rundpkg -S /sbin/init
). Pero Bitnami ha colocado su script en el directorio /etc/init.d. ¿No es esto conflictivo con tu respuesta a @AsheeshR arriba? Gracias.El ".d" generalmente se agrega a un nombre de directorio para indicar que lo que solía ser (o lo que podría haber sido) manejado por un solo script o un único archivo de configuración se ha dividido en varios archivos por conveniencia, pero que deben incluirse o ejecutarse juntos.
Por ejemplo,
/etc/apache/conf.d/
o/etc/apt/sources.d/
En los casos en que es importante en qué orden deben incluirse / ejecutarse, los archivos en estos directorios a veces comienzan con un número, como "00-default" u "80-user" para que se ejecuten en el orden correcto.
En el caso de
/etc/init.d/
esto, indica que los scripts en "init.d" deberían ejecutarse. Hoy en día, sin embargo, el sistema init de los sistemas operativos modernos está un poco más involucrado que eso, pero el nombre del directorio sigue ahí.fuente
.d
medio esté relacionado con un proceso 'deamon' que normalmente se inicia en el momento del arranque.Como usted señala, la nomenclatura ".d" es desconcertante y extraña, y realmente no tiene ningún lugar en ningún sistema moderno; notará que la mayoría de los servicios modernos han tendido a abandonarla.
La razón por la que el directorio es
/etc/init
y no/etc/upstart
es porque Upstart es el nombre del proyecto, el binario real instalado sigue siendo,/sbin/init
por lo tanto, no tendría sentido que su configuración tenga un nombre que no coincida con el binario.fuente
rules.d
, Xorg es relativamente recientexorg.conf.d
, no demasiado viejo,/etc/profile.d
etc.