Todos já estão acostumados com a estrutura padrão dos scripts de inicialização das maiorias das distribuições (os famosos /etc/rc.d/*), porém quando nos deparamos com um Gentoo a história muda. Este artigo demonstra de forma prática como funcionam os scripts de inicialização do Gentoo Linux.
A sintaxe dos scripts é bem simples, não muda quase nada dos shell-scripts.
O mínimo necessário em um script são as funções start() e stop(). Estas funções podem ser utilizados quaisquer comandos shell, sendo que no início, por questão de estética é utilizado um comando exclusivo do runscript, o ebegin. O comando ebegin funciona semelhante à um echo, porém com suas particularidades:
ebegin "Starting named..."
Isto mostraria na tela:
* Starting named...
No final dessas funções é inserido outro comando especial, o eend, que serve para indicar o status da operação. O eend deve ser usado assim:
eend $?
Caso tudo ocorra bem, a saída seria assim:
* Starting named... [ ok ]
Caso contrário seriam exibidos dois pontos de exclamação (!!) no lugar do ok.
Se seu script depender de qualquer outro para ser executado, é implementada uma função depend() que possui a seguinte sintaxe:
depend() {
need net
use iptables
}
Neste caso o script necessitaria que o script "net" estivesse sendo executado para que o mesmo funcione e executaria o script iptables ao mesmo tempo que se executaria.
Caso seu script use alguma variável, o Gentoo oferece um recurso de organização em que você cria um arquivo com todas as variáveis que podem ser configuradas pelo usuário sem ser necessário procurar no script. Basta criar um arquivo em /etc/conf.d com o mesmo nome do script criado em /etc/init.d e colocar as variáveis neste arquivo.
Para que seu script seja iniciado automaticamente na inicialização, execute o comando:
# rc-update add script default
Para removê-lo da inicialização coloque "del" ao invés de "add".
Dica para os que utilizam vim: caso você queira que seu script fique com sintaxe colorida, adicione na segunda linha (isso porque na primeira vem o interpretador) o seguinte trecho:
[3] Comentário enviado por lordello em 26/11/2004 - 20:17h
Aeee.... sou usuário Gentoo e adoro o portage, não existe nada melhor que o portage, a otimização dos pacotes fica em segundo plano, pois o portage é show... O artigo está muito bom sim, mas gostaria de fazer uma observação sobre as sintaxes do VIM, o ideal é fazer isso:
# emerge gentoo-syntax
Pronto! Agora o vim estará com sintaxe para tudo dentro do Gentoo, make.conf rc.conf init.d ebuild etc...
[5] Comentário enviado por telurion em 19/12/2004 - 20:41h
O runscript é um interpretador simples de arquivos de lote, criado para automação do minicom, um "programa de comunicações seriais" do tipo que a gente usava para conectar às BBS. Sei que existe no Slackware, deve existir no Debian (pacote: minicom), e existem menções ao minicom no site da Conectiva.