FreeBSD
Inicialização e Finalização de Daemons
Para inicializar e finalizar os daemons, nos momentos de boot e shutdown, respectivamente,
o procedimento mais recomendado é colocar scripts no diretório
/usr/local/etc/rc.d. Esses scripts devem possuir a extensão .sh (apenas
.sh), devem ser executáveis (permissão 700) e precisam aceitar
dois argumentos: start e stop.
Quem gerencia estes procedimentos no boot e no shutdown é o RC, é interessante sabermos como funciona, para isso pode ser consultado o seu manual, com o comando "man rc". Deste manual foi retirado e adaptado o exemplo de script abaixo, que deve ser copiado e customizado para cada novo serviço que for instalado. Crie um arquivo /usr/local/etc/rc.d/exemplo.sh.sample com o conteúdo abaixo, desta forma o teremos sempre disponível:
-------------------- Arquivo exemplo.sh.sample --------------------
#!/bin/sh -
#
# Script de Inicializacao e Shutdown
# Nome_do_Programa
case "$1" in
start)
/comando/para/iniciar/o/programa && echo -n ' Nome_do_Programa'
;;
stop)
/comando/para/parar/o/programa && echo -n ' Nome_do_Programa'
;;
*)
echo "Opcao desconhecida: $1 - deve ser 'start' ou 'stop'" >&2
;;
esac
-------------------- Fim do arquivo exemplo.sh.sample --------------------
O comando para inicializar o programa pode conter parâmetros, se necessário. Pode ser algo como
/usr/local/sbin/proftpd
ou
/usr/sbin/postfix start
O comando para terminar o programa também pode conter parâmetros, e pode ser um comando específico do daemon, um kill ou até mesmo um killall. Exemplos:
/usr/sbin/postfix stop
kill `cat /usr/local/var/proftpd.pid`
killall proftpd
Mantenha este arquivo de exemplo com a permissão 600 e a extensão
.sample, desta forma ele não será executado acidentalmente e nem
na inicialização ou shutdown do sistema.
A seqüência de execução dos scripts segue a ordem
alfabética. Desta forma, se for necessário que algum script seja
executado antes do outro, podemos colocar números na frente dos nomes,
estabelecendo a ordem.
Atualizado em 03/02/04.
Heini Thomas Geib.
http://www2.unijui.edu.br/~heini