Qual é a diferença entre /etc/init/
e /etc/init.d/
?
De maneira mais geral, que significado o .d
sufixo transmite para um diretório?
Qual é a diferença entre /etc/init/
e /etc/init.d/
?
De maneira mais geral, que significado o .d
sufixo transmite para um diretório?
Respostas:
/etc/init.d
contém scripts usados pelas ferramentas de inicialização do System V (SysVinit). Este é o pacote tradicional de gerenciamento de serviços do Linux, que contém o init
programa (o primeiro processo executado quando o kernel termina a inicialização), além de alguma infraestrutura para iniciar e parar serviços e configurá-los. Especificamente, os arquivos /etc/init.d
são scripts shell que respondem a start
, stop
, restart
, e (quando suportado) reload
comandos para gerir um serviço particular. Esses scripts podem ser chamados diretamente ou (mais comumente) através de algum outro gatilho (geralmente a presença de um link simbólico /etc/rc?.d/
).
/etc/init
contém arquivos de configuração usados pelo Upstart. Upstart é um jovem pacote de gerenciamento de serviços promovido pelo Ubuntu. Arquivos em /etc/init
são arquivos de configuração dizendo Upstart como e quando start
, stop
, reload
a configuração, ou consultar o status
de um serviço. No lucid, o Ubuntu está em transição do SysVinit para o Upstart, o que explica por que muitos serviços vêm com scripts SysVinit, mesmo que os arquivos de configuração do Upstart sejam os preferidos. De fato, os scripts SysVinit são processados por uma camada de compatibilidade no Upstart.
.d
em nomes de diretório normalmente indica um diretório contendo muitos arquivos de configuração ou scripts para uma situação particular (por exemplo, /etc/apt/sources.list.d
contém arquivos que são concatenadas para fazer um virtual sources.list
; /etc/network/if-up.d
contém scripts que são executados quando uma rede i nter f ace é ativado). Essa estrutura geralmente é usada quando cada entrada no diretório é fornecida por uma fonte diferente, para que cada pacote possa depositar seu próprio plug-in sem precisar analisar um único arquivo de configuração para fazer referência a si próprio. Nesse caso, acontece que “init” é um nome lógico para o diretório, o SysVinit foi o primeiro a ser usado init.d
e o Upstart usado sem formatação.init
para um diretório com um objetivo semelhante (teria sido mais "mainstream" e talvez menos arrogante, se eles tivessem usado /etc/upstart.d
).
¹ sem contar initrd
upstart
or sysvinit
. E nas versões recentes, também poderia ser systemd
(o que não existia no Ubuntu quando escrevi minha resposta). É o pacote que fornece /sbin/init
( dpkg -S /sbin/init
).
upstart
pacote que fornece / sbin / init (executado dpkg -S /sbin/init
). Mas o Bitnami colocou seu script no diretório /etc/init.d. Isso não é conflitante com sua resposta para @AsheeshR acima? Obrigado.
O ".d" geralmente é anexado a um nome de diretório para indicar que o que costumava ser (ou o que poderia ter sido) tratado por um único script ou um único arquivo de configuração foi dividido em vários arquivos por conveniência, mas que devem ser incluídos ou executados juntos.
Por exemplo, /etc/apache/conf.d/
ou/etc/apt/sources.d/
Nos casos em que é importante em que ordem eles devem ser incluídos / executados, os arquivos nesses diretórios algumas vezes começam com um número, como "00-default" ou "80-user", para que sejam executados na ordem correta.
No caso /etc/init.d/
, indica que os scripts em "init.d" devem ser executados. Atualmente, no entanto, o sistema init dos sistemas operacionais modernos está um pouco mais envolvido que isso, mas o nome do diretório ainda está lá.
.d
meios estejam relacionados a um processo 'deamon' que normalmente é iniciado no momento da inicialização.
Como você aponta, a nomenclatura ".d" é intrigante e estranha, e realmente não tem lugar em nenhum sistema moderno - você notará que a maioria dos serviços modernos tendem a abandoná-la.
A razão pela qual o diretório é /etc/init
e não /etc/upstart
é porque Upstart é o nome do projeto, o binário instalado real ainda é, /sbin/init
portanto, não faria sentido para sua configuração ter um nome que não correspondesse ao binário.
rules.d
, do Xorg relativamente recente xorg.conf.d
, não muito velha /etc/profile.d
etc ..
.d
diretórios inseridos com o Sistema V. Era uma notação intrigante e, finalmente, provavelmente a idéia de uma pessoa que entrou na base de código e não pôde sair. Por exemplo, se você acha que essecat
é um nome ruim para a tarefa que ele executa, imagine quantos arquivos em todo o sistema você precisaria tocar para alterá-lo.