/etc/rc.d vs /etc/init.d

15

O diretório /etc/init.d do ubuntu é exatamente equivalente (funcionalmente) ao que eu presumo ser o mais padrão /etc/rc.d/ (pelo menos no arco)? Existe algum motivo específico canônico usado init.d em vez de rc.d para scripts de inicialização?

    
por Falmarri 26.10.2010 / 20:22

7 respostas

16

O Ubuntu usa /etc/init.d para armazenar scripts do SysVinit porque o Ubuntu é baseado no Debian e é isso que o Debian usa. A Red Hat usa /etc/rc.d/init.d . Eu esqueço o que o Slackware usa. Simplesmente não há um local padrão.

O Ubuntu está mudando de SysVinit para Upstart , que usa arquivos de configuração em /etc/init .

    
por 26.10.2010 / 21:45
7

/etc/init.d era o antigo local histórico para o SVR4. Esqueci porque o redhat adicionou o nível /etc/rc.d/. Eu acho que para isolar as coisas no rc.d, mas precisava adicionar um monte de symlinks de qualquer maneira para compatibilidade com versões anteriores. Portanto, há /etc/init.d no redhat, apenas ele simboliza em outro lugar.

Portanto, a localização padrão é /etc/init.d, embora possa ser um link simbólico e não um diretório real.

Havia algumas distribuições do Linux realmente antigas que copiavam o BSD com o /etc/rc.local, mas praticamente ninguém mais o usa.

    
por 27.10.2010 / 01:15
6

O Slackware ainda usa /etc/rc.d

FreeBSD usa /etc/rc.d e /usr/local/etc/rc.d

    
por 27.10.2010 / 18:29
4

Historicamente, a árvore de diretórios /etc/rc.d denota um sistema Init que segue a tradição 4.4 BSD de inicialização do sistema, que geralmente é chamada de sistema rc init. Todo o moderno sistema BSD (Free / Open / Net) e o Slackware Linux seguem essa tradição.

A árvore de diretórios /etc/init.d indica o sistema init do System V (SysV) que segue a tradição AT & T UNIX, SunOS, Solaris de inicialização do sistema. Isso é comumente chamado de sistema SysV Init. O próprio Debian ainda segue essa tradição na série Wheezy, mas planeja usar o SystemD na série Jessie. Historicamente, RedHat e derivativos usaram o SysV Init, mas não usam mais.

Além disso, ao longo do tempo, os recursos de ambos os esquemas de inicialização foram adotados por distribuições.

    
por 02.12.2014 / 05:59
0

Na verdade, pelo menos no CentOS 6.8 Santiago, /etc/init.d é apenas um link para /etc/rc.d .

    
por 14.09.2016 / 23:47
0

O PuppyLinux tem tanto o /etc/rc.d quanto o /etc/init.d , sem ser um link simbólico. O que é um link simbólico é /etc/rc.d/init.d , que liga um nível para /etc/init.d (estou vendo um Slackware Filhote baseado em Ubuntu - também há outros baseados no Ubuntu.) Há um README.txt em cada um, explicando sua abordagem.

    
por 15.09.2016 / 01:45
0

Ok, /etc/init.d é um lugar onde você pode implantar rapidamente um script de inicialização. O segundo passo para ativar este script é executar um comando chkconfig nele. Digamos que você execute chkconfig --add <yourscript> , links simbólicos serão criados entre /etc/init.d/<yourscript> e /etc/rc.d/rcX.d/S50<script> , por exemplo. X em rcX.d representando o número de runlevel do script e S50 representando o tipo de script (existem dois desses tipos, S & K, S informa ao sistema para iniciar o script quando ele é inicializado e K informa ao sistema para sair do script graciosamente quando você desligar O número após S / K representa a ordem em que isso acontece, caso você tenha alguns scripts que dependam de outros serem ativos primeiro). Por padrão, se nenhum nível de execução for especificado dentro do script ou quando você emitir o comando runlevel, o CentOS6 criará scripts S50 para os níveis de execução 2,3,4,5 e K50 para os níveis de execução 0,1,6.

    
por 15.09.2016 / 18:13