[FUG-BR] [OFF-TOPIC] Ordem de execução de scripts no boot

Alex alexbbastos em gmail.com
Domingo Novembro 13 21:15:59 BRST 2011


Cleyton (e Airton também), muito obrigado pela resposta, sua explicação foi
mais que suficiente.
Valeu mesmo; e desculpe a demora do feedback.
Abraço.


Em 11 de novembro de 2011 22:16, Airton Arantes
<airton.arantes em gmail.com>escreveu:

> 2011/11/11 Cleyton Agapito <cragapito em gmail.com>
>
> > Em 11 de novembro de 2011 21:02, Alex <alexbbastos em gmail.com> escreveu:
> > > Prezados, boa noite.
> > >
> > > Recentemente me deparei com uma questão, que posteriormente se
> desdobrou
> > em
> > > três, e que gostaria de saber a opinião especializada de vocês sobre o
> > > assunto.
> > >
> >
> > Bom, longe de ser especializada o que pretendo colocar é uma
> > experiência que tive com esse assunto.
> >
> > > A questão original é essa:
> > >
> > > 1 - Você criou um script que deve ser executado no boot após todos os
> > > outros processos terem sido executados. Qual a melhor forma de
> > implementar
> > > isso?
> > >
> >
> > Dê uma olhada no manual do rcorder(8), herança do NetBSD, vc põe no
> > script que ele só vai rodar depois (ou antes) de alguma condição (ter
> > rede, ter login, etc), o script fica um pouquinho mais complexo mas o
> > sistema "se vira" pra executar na ordem correta, no caso o rc.conf
> > precisa "habilitar" o serviço (ou script), se não tiver nada em
> > contrário no /etc/rc.conf são executados por default os do
> > /etc/defaults/rc.conf.
> >
> > >
> > > As duas que sequenciaram são essas:
> > >
> > > 2 - Existem diferenças entre como a questão anterior pode ser tratada
> nos
> > > BSD's (incluindo o FreeBSD) e nos Linux's (se considerar todas as suas
> > > inúmeras distribuições, ou pelo menos as mais "famosas")?
> > >
> >
> > Sim, o linux usa o jeito AT&T de fazer, basicamente vc tem diretórios
> > chamados runlevels que possuem links pro init.d, cada link começa com
> > um número e eles são executados nessa ordem, os scripts ficam mais
> > simples mas a administração mais trabalhosa, o método BSD é muito mais
> > inteligente (e complexo).
> >
> > > 3 - Poderia ser aceita como uma possível resposta da questão 1 afirmar
> > que
> > > a solução seria inserir o comando que aciona o script no arquivo
> > > /etc/rc.conf, *no final do arquivo*, uma vez que a ordem da disposição
> > das
> > > linhas dos mesmos importa e faz diferença, como por exemplo em
> servidores
> > > de e-mail, em que é extremamente recomendável que o antivírus (Ex:
> > ClamAV)
> > > seja iniciado antes do SMTP (Ex: Postfix) justamente pela ordem de
> > > execução/inicialização dos mesmos?
> > >
> >
> > Não, a ordem é definida por palavras chaves no script (REQUIRE,
> > BEFORE, etc), o rcorder controla a sequencia de partida e termino
> > baseado nessas chaves independente da ordem dos rc.conf.
> >
> > >
> > > --------------------------------------------
> > >
> > > Ressalto novamente que o script deve ser iniciado no boot, mas que deve
> > ser
> > > o último a ser executado dentre todos os outros processos do boot.
> >
> > Vc pode por "REQUIRE: LOGIN" no script, creio que já atenda a tua
> > necessidade mesmo sem garantia de ser o último, ou vc pode ir no
> > /etc/rc.d e rodar o rcorder em cima do que possa ser o último a ser
> > executado, o ideal é usar como dependência os que estão em maiúsculo,
> > daí não tem perigo de desativar uma coisa e parar outra.
> >
> > > É preciso observar também que em nenhum momento na questão inicial foi
> > > especificado o S.O. em que o script seria hipoteticamente executado,
> por
> > > isso pergunto sobre Linux's também e sobre a possível aplicação de uma
> > > forma que existe no FreeBSD.
> > >
> >
> > A forma de tratar a partida é completamente diferente, não se se tem
> > como implementar uma partida AT&T no BSD, até porque não vejo muita
> > utilidade. De qualquer forma se o script precisar rodar nos dois é
> > capaz que funcione, coloque as diretivas BSD no arquivo (que pro Linux
> > aparecerão como comentários) e no Linux faça os Links simbólicos
> > tradicionais, creio que vai dar certo.
> >
> > > Obs 1: Se puderem/quiserem detalhar as respostas, fiquem à vontade.
> >
> > Não sei se há necessidade de detalhar, se for o caso dê um grito que a
> > gente tenta melhorar :-)
> >
> > > Obs 2: Admite-se que o já script tenha permissão de execução.
> > >
> >
> > Com certeza, nos dois sistemas a permissão de execução é condição.
> >
> > Abração!
> > -------------------------
> > Histórico: http://www.fug.com.br/historico/html/freebsd/
> > Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
> >
>
>
> Apenas mais um adição, o rc.local é ainda suportado. Você pode colocar a
> seguinte linha no seu /etc/rc.conf
>
> local_startup="/usr/local/etc/rc.d/rc.local"
>
> --
> Airton Arantes Coelho Filho
> -------------------------
> Histórico: http://www.fug.com.br/historico/html/freebsd/
> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
>


Mais detalhes sobre a lista de discussão freebsd