Manual de instalação do Interbase Server no Conectiva Linux
Este guia mostra de forma ampla como instalar, configurar e fazer com que o banco de dados Interbase 6 Server seja inicializado junto com o sistema operacional.
Parte 3: Colocando o Interbase para inicializar automaticamente
Para fazemos com que o Interbase inicie junto com sistema vamos criar
um script que vai ser executado na hora que a máquina for iniciada!
#! /bin/sh
# ibserver script - Start/stop the InterBase daemon
# Set these environment variables if and they are set.
: ${INTERBASE:=/home/interbase}
: ${ISC_USER:=SYSDBA}
: ${ISC_PASSWORD:=masterkey}
# ADVERTÊNCIA: em uma instalação do mundo real,
# você não deveria deixar a senha SYSDBA dentro de um diretório
# público legível. Para proteger o arquivo de um:
# chmod 700 Ibserver
# chown root Ibserver
# export INTERBASE
# export ISC_USER
# export ISC_PASSWORD
ibserver_start()
{
# This example assumes the InterBase server is
# being started as UNIX user 'interbase'.
echo $INTERBASE'/bin/ibmgr -start -forever' | su interbase
}
ibserver_stop()
{
# No need to su, since $ISC_USER AND $ISC_PASSWORD validate us.
$INTERBASE/bin/ibmgr -shut -password $ISC_PASSWORD
}
case $1 in
'start')
echo -e 'InterBase Server iniciado... c'
ibserver_start ;;
'start_msg' )
echo -e 'InterBase Server iniciado... c' ;;
'stop' )
echo -e 'InterBase Server parado... c'
ibserver_stop ;;
'stop_msg' ) echo -e 'InterBase Server parado... c' ;;
*) echo 'Usage: $0 { start | stop }'; exit 1;;
esac
exit 0
# ibserver script - Start/stop the InterBase daemon
# Set these environment variables if and they are set.
: ${INTERBASE:=/home/interbase}
: ${ISC_USER:=SYSDBA}
: ${ISC_PASSWORD:=masterkey}
# ADVERTÊNCIA: em uma instalação do mundo real,
# você não deveria deixar a senha SYSDBA dentro de um diretório
# público legível. Para proteger o arquivo de um:
# chmod 700 Ibserver
# chown root Ibserver
# export INTERBASE
# export ISC_USER
# export ISC_PASSWORD
ibserver_start()
{
# This example assumes the InterBase server is
# being started as UNIX user 'interbase'.
echo $INTERBASE'/bin/ibmgr -start -forever' | su interbase
}
ibserver_stop()
{
# No need to su, since $ISC_USER AND $ISC_PASSWORD validate us.
$INTERBASE/bin/ibmgr -shut -password $ISC_PASSWORD
}
case $1 in
'start')
echo -e 'InterBase Server iniciado... c'
ibserver_start ;;
'start_msg' )
echo -e 'InterBase Server iniciado... c' ;;
'stop' )
echo -e 'InterBase Server parado... c'
ibserver_stop ;;
'stop_msg' ) echo -e 'InterBase Server parado... c' ;;
*) echo 'Usage: $0 { start | stop }'; exit 1;;
esac
exit 0
Agora que o nosso script ibserver já esta pronto, vamos dar-lhe as devidas permissões para tornar o sistema um pouco mais seguro. Porém antes vamos colocá-lo no seu devido lugar:
# cp lugar/onde/esta/oscript/ibserver /etc/rc.d/
Agora vamos às suas permissões!
# chown root ibserver
# chgrp root ibserver
# chmod 700 ibserver
Se você quiser que o ibserver possa ser inicializado com a lista de cds, crie um link simbólico para o mesmo em:
# ls -s /etc/rc.d/ibserver /etc/rc.d/init.d/ibserver
OBS: se você nem sabe o que é lista cds, é melhor não efetuar esse procedimento já que o mesmo é apenas para facilitar a vida do usuário mais preguiçoso.
Bom, como você já deve saber o Interbase Server é um serviço dependente do inetd, portanto o inetd deve ser inicializado antes do Interbase e para isso você deve seguir os passos a baixo.
Antes de qualquer coisa procure saber o nível de inicialização do seu sistema.
Modo texto - nível 3
ou Modo texto e modo gráfico - nível 5
OBS: pode ser que em seu sistema os níveis sejam diferentes. Veja o arquivo /etc/inittab para conferir.
Primeiro vamos colocar o inetd para iniciar junto com sistema, para isso recomendo o uso o utilitário linuxconf que é sem dúvida uma ótima ferramenta para diversas atividades.
Supondo que o inetd não esteja na lista de serviços disponíveis para iniciar junto com sistema, teremos que criar um link simbólico na pasta do nível de inicialização correspondente ao nosso sistema. Parece complicado? Pois é mesmo!
Certamente o inetd estará dentro de /etc/rc.d/init.d, porém ele deve estar com nome de inet. Supondo que o nível de inicialização da nossa maquina seja o nível 3, vamos proceder da seguinte forma:
# cd /etc/rc.d/rc3.d
# ls -s /etc/rc.d/init.d/inet S30inet
# ls -s /etc/rc.d/init.d/inet K80inet
Cada nível de inicialização é representado por uma pasta do tipo rc.Nivel, portanto se o seu nível é o 5, você deve criar o links em etc/rc.d/rc5.d/.
Agora vamos criar os links para que o nosso script seja iniciado junto com sistema. Como estamos supondo que nossa máquina tenha o nível 3 de inicialização, veja o procedimento logo abaixo:
# cd /etc/rc.d/rc3.d
# ls -s /etc/rc.d/ibserver S60ibserver
# ls -s /etc/rc.d/ibserver k03ibserver
Bom agora esta tudo configurado!
Qualquer duvida poste um comentário.
Diogo Junqueira Penha.
Uberlândia 19/07/2003
e-mail: diogu@pop.com.br
ftp://ftp.borland.com/pub/interbase/devsupport/open_source/
Esse manual e pra versão 6 SS
:)