On 7/26/07, Marcos Henrique Esteves Barbosa
<[EMAIL PROTECTED]> wrote:
>
> Vou explicar melhor. Os scripts dos runlevels (os scripts rc.
> {0,4,6,S,M}) ficariam em /etc/runlevels (ou outro nome), mas os
> scripts dos serviços (como rc.inetd, rc.pcmcia, rc.httpd) continuariam
> em /etc/rc.d. Os scripts dos runlevels seriam modificados para em vez
> de fazerem a verificação que verifica se cada um dos arquivos tem
> permissão de execução, e se tiver executa, como no seguinte código:
> if [ -x /etc/rc.d/rc.inetd ]; then
> /etc/rc.d/rc.inetd start
> fi
> Este sistema tem a seguinte desvantagem: se precisar adicionar um novo
> serviço (como o OpenLDAP) tem que adicionar linhas no /etc/rc.d/
> rc.local para que verifique se tem permissão de execução. No meu
> sistema, ele executa um laço FOR para todos os arquivos do dirétório /
> etc/rc.d e caso tenha permissão de execução, executa passando o
> parâmetro start. No rc.0 e no rc.6 acontece o mesmo, porém passando
> stop em vez de start. Se não tirar os scripts responsáveis pelos
> runlevels do mesmo diretório, ele vai desligar a máquina (por que
> executará o rc.0). Não sei se tem como escrever um código que retire
> os scripts do runlevel do laço, se tiver nem precisa tirar os scripts
> dos runlevels. Expliquei melhor?
Com exceção do laço o sistema de inicialização do Slackware faz
"quase" o que tu quer: carrega scripts de acordo com o runlevel
(havendo a particularidade do runlevel 4, que tem seu próprio script)
a questão do laço que é mais complicada...
Tal sistema de inicialização, ao meu ver, deveria fazer o seguinte:
- Inicializar/parar serviços de acordo com o runlevel: isso quer dizer
que algumas coisas devem rodar em um runlevel e outras devem ser
paradas, o melhor exemplo p/ isso são o runlevel 2 e 3 da LSB - no
runlevel 2 tu desativaria serviços como o NFS e no 3 tu ativaria
estes; assim a idéia de um laço que inicia tudo deixa teu sistema
incompatível
- Ter prioridades de inicialização: tenta iniciar o rc.httpd antes do
rc.inet1 sem erros, teu laço vareria o diretório e com certeza usaria
de ordem alfabética - o que teria problemas como este de iniciar o
apache antes da rede...
- Ter uma forma clara e prática de definir os dois itens anteriores,
no Sys V é por meio de links mas tu poderia usar um conf ou fazer uma
prioridade mais complexa com uso de expressões regulares e um pouco de
inteligência artificial (ensinar o teu script a dar prioridade a
serviços com técnicas simples do tipo "se é serviço, então só inicia
se a rede ja foi iniciada"), ai vai depender da tua capacidade e
conhecimento em programação. :)
Eu acho isso um tópico bem interessante mas para fins de aprendizado,
eu vejo tal modificação como algo que vai contra o principal fator do
slackware: a simplicidade. ;)
--
Por favor não faça top-posting, coloque a sua resposta abaixo desta linha.
Please don't do top-posting, put your reply below the following line.
--------------------------------------------------------
--~--~---------~--~----~------------~-------~--~----~
GUS-BR - Grupo de Usuários de Slackware Brasil
http://www.slackwarebrasil.org/
http://groups.google.com/group/slack-users-br
-~----------~----~----~----~------~----~------~--~---