Por que os scripts init.d estão em etc?

16

Eu continuo lendo / ouvindo que /etc é para arquivos de configuração do sistema. Alguém pode explicar / me dar alguma intuição de por que esses scripts que iniciam / param / reinicializam vários programas geralmente estão em /etc em vez de /var ou /usr ou algo similar?

    
por Adam Thompson 29.08.2016 / 00:25

5 respostas

21

No início (tanto historicamente como no processo de inicialização ...), /etc é uma parte de / (o primeiro sistema de arquivos montado), enquanto /usr não foi (até que os discos ficaram grandes). /var contém dados temporários , enquanto esses scripts não são temporários.

Não é tão simples, mas começou dessa forma e não há motivo para refazer todo o layout do diretório.

    
por 29.08.2016 / 00:29
13

Os scripts de inicialização são, na verdade, uma parte importante da configuração do sistema.

Embora o processo de inicialização seja muito menos personalizado do que há 15 ou 30 anos, e a maior parte da configuração de inicialização tenha sido automatizada, todas essas opções administrativas que determinam a seqüência de inicialização ainda estão presentes em /etc .

Isso representa uma maneira muito centralizada de manter e fazer backup da configuração do sistema. Na maioria dos sistemas, o backup de /etc é suficiente para permitir a reinstalação de todo o sistema com facilidade. Você simplesmente faz uma reinstalação completa com os programas necessários e restaura o seu /etc backup.

    
por 29.08.2016 / 06:23
2

Você faria bem em analisar o Padrão de hierarquia do sistema de arquivos . Ele explicará (em detalhes) exatamente por que isso acontece, mas também contém essas informações em muitos outros caminhos sobre os quais você pode estar curioso.

The filesystem standard has been designed to be used by Unix distribution developers, package developers, and system implementors. However, it is primarily intended to be a reference and is not a tutorial on how to manage a Unix filesystem or directory hierarchy.

    
por 29.08.2016 / 17:09
2

M. Dickey e M. Pelletier compraram as premissas da questão. Mas as premissas estão erradas.

Se você leu que " /etc é para arquivos de configuração do sistema", você leu algo que não mostra a imagem completa para você. Olhe o nome. É "et cetera". As pessoas colocaram tudo na barra da cozinha lá de uma vez ou outra.

  • /etc/rc costumava ser (e em alguns sistemas ainda é) o programa é executado para iniciar tudo.
  • O arquivo de imagem do programa para o primeiro processo do usuário foi /etc/init em um ponto (no XENIX, por exemplo, muito antes de o upstart ser uma ideia).
  • /etc/profile , /etc/zprofile e todo o resto são definitivamente scripts.
  • O /etc/netstart do OpenBSD é um programa; como é o /etc/ipfw.rules do FreeBSD.
  • O mesmo acontece com /etc/rc.suspend e /etc/rc.resume do FreeBSD; e, de fato, /etc/rc.sendmail , /etc/rc.bsdextended e /etc/rc.firewall .

Da mesma forma, se você leu que "scripts que iniciam / param / reinicializam vários programas geralmente estão em /etc em vez de /var ou /usr ou algo similar", então você leu outra coisa que não faz pinte a imagem completa para você.

    A convenção do
  • FreeBSD / PC-BSD é ter um diretório /usr/local/etc/rc.d/ para scripts não-operacionais do sistema rc . rc scripts para todos os tipos de coisas ao vivo, e não abaixo de /etc .
  • Você encontrará pessoas da família daemontools colocando algumas coisas de gerenciamento de serviços em /var/sv , /var/service e lugares semelhantes. (Meu conjunto de ferramentas, por exemplo, fornece quase mil pacotes de serviços em /var/sv . Os únicos pacotes de serviços que vão em /etc/service-bundles são os entre 60 e 70 necessários antes de /usr ser montado, incluindo os serviços que monte e verifique /usr se necessário.)
  • convenções do sistema operacional systemd tem algumas coisas vivendo em /etc/systemd , algumas coisas em /run/systemd , algumas coisas em /usr/lib/systemd e ( embora não tenha documentado por razões inaplicáveis ) algumas coisas em /usr/local/lib/systemd . Novamente, a maioria das "coisas para iniciar / parar serviços" pode ser encontrada em /usr em vez de em /etc .
por 29.08.2016 / 17:56
1

O Digital UNIX colocou os scripts sob o diretório /sbin/init.d . E também HP-UX, de acordo com a pedra de roseta .

    
por 29.08.2016 / 18:05