2011/11/11 Cleyton Agapito <cragap...@gmail.com> > Em 11 de novembro de 2011 21:02, Alex <alexbbas...@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