es0064181
(usa CentOS)
Enviado em 03/04/2011 - 21:21h
Boa noite pessoal,
Fiz um serviço para iniciar e parar a base de dados, consegui adicionar no chkconfig e configurar os runlevels, quando inicio o sistema o banco de dados é iniciado corretamente então o serviço esta ok no runlevel 5, mas para os comandos de "halt" e "reboot" (runlevel 0 e 6) o mesmo não é executado... irei postar o código do serviço:
a configuração do chkconfig ficou assim:
sybase 0:off 1:on 2:on 3:on 4:on 5:on 6:off
#!/bin/bash
#
# /etc/rc.d/init.d/sybase
#
# Inicia o sybase daemon
#
# chkconfig: 2345 99 01
# Description: Inicia e para o banco de dados Sybase
# processname: sybase
### Informacoes de inicializacao
# Provides: sybase
# Default-Start: 1 2 3 4 5
# Default-Stop: 0 6
# Short-Description: Inicia e Para o BD
# Description: Inicia e para o banco de dados Sybase
# Abille Solucoes em T.I LTDA - Script para RunLevels
# V 1.0 (02/04/2011 : 5:54 am - por: Evandro Blanke Sangiovo)
export LD_LIBRARY_PATH=/opt/sybase/SYBSsa9/lib
# Source function library. echo_success echo_failure echo_warning
if [ -f /etc/init.d/functions ] ; then
. /etc/init.d/functions
elif [ -f /etc/rc.d/init.d/functions ] ; then
. /etc/rc.d/init.d/functions
else
exit 1
fi
#----------------------------------------------------------------------------------------------------------------
# Metodos do script
#----------------------------------------------------------------------------------------------------------------
# Inicio do metodo stop
#===========================================
stopDB() {
/opt/sybase/SYBSsa9/bin/dbstop -c "eng=teste02; uid=DBA; pwd=SQL" -y
}
# Final do metodo stop
#===========================================
# Inicio do metodo start
#===========================================
startDB() {
/opt/sybase/SYBSsa9/bin/dbsrv9 -n teste02 -c 500m /teste/bd -ud
}
# Final do metodo start
#===========================================
case "$1" in
'start')
echo "executo start as `date`" >> /abase/log/testedeservico
PID=`pidof dbsrv9`
if [ "$PID" == "" ]; then
echo "Iniciando bando de dados"
startDB > /dev/null
sleep 10
PID=`pidof dbsrv9`
if [ "$PID" != "" ]; then
echo_success
sleep 1
else
echo_failure
sleep 1
fi
else
echo "Banco de dados ja iniciado"
echo_warning
fi
echo ""
;;
'stop')
echo "executo stop as `date`" >> /abase/log/testedeservico
PID=`pidof dbsrv9`
if [ "$PID" == "" ]; then
echo "Banco de dados parado"
echo_warning
else
echo "Parando banco de dados"
stopDB > /dev/null
sleep 10
PID=`pidof dbsrv9`
if [ "$PID" == "" ]; then
echo_success
else
echo_failure
fi
fi
echo ""
;;
'restart')
PID=`pidof dbsrv9`
if [ "$PID" == "" ]; then
echo -n "Banco de dados parado"
echo_warning
else
echo "Parando banco de dados"
stopDB > /dev/null
sleep 10
PID=`pidof dbsrv9`
if [ "$PID" == "" ]; then
echo_success
else
echo_failure
fi
fi
echo ""
PID=`pidof dbsrv9`
if [ "$PID" == "" ]; then
echo "Iniciando bando de dados"
startDB > /dev/null
sleep 10
PID=`pidof dbsrv9`
if [ "$PID" != "" ]; then
echo_success
else
echo_failure
fi
else
echo "Banco de dados ja iniciado"
echo_warning
fi
echo ""
;;
*)
echo "utilizar $0 com os argumentos:"
echo ""
echo ""
echo "start | stop"
echo ""
esac
Se eu chamar o serviço assim:
service sybase stop ----> Funciona corretamente
no diretório /etc/rc6.d e /etc/rc0.d está assim:
lrwxrwxrwx 1 root root 17 Apr 3 20:54 K01dnsmasq -> ../init.d/dnsmasq
lrwxrwxrwx 1 root root 16 Apr 3 20:55 K01smartd -> ../init.d/smartd
lrwxrwxrwx 1 root root 16 Apr 3 20:52 K01sybase -> ../init.d/sybase
lrwxrwxrwx 1 root root 22 Dec 31 2001 K02avahi-daemon -> ../init.d/avahi-daemon
lrwxrwxrwx 1 root root 24 Dec 31 2001 K02avahi-dnsconfd -> ../init.d/avahi-dnsconfd
lrwxrwxrwx 1 root root 24 Dec 31 2001 K02NetworkManager -> ../init.d/NetworkManager
lrwxrwxrwx 1 root root 17 Dec 31 2001 K02oddjobd -> ../init.d/oddjobd
lrwxrwxrwx 1 root root 22 Dec 31 2001 K03yum-updatesd -> ../init.d/yum-updatesd
lrwxrwxrwx 1 root root 17 Dec 31 2001 K05anacron -> ../init.d/anacron
lrwxrwxrwx 1 root root 13 Dec 31 2001 K05atd -> ../init.d/atd
lrwxrwxrwx 1 root root 16 Dec 31 2001 K05conman -> ../init.d/conman
lrwxrwxrwx 1 root root 19 Dec 31 2001 K05saslauthd -> ../init.d/saslauthd
lrwxrwxrwx 1 root root 14 Dec 31 2001 K10cups -> ../init.d/cups
Então a pergunta:
Onde posso verificar alguma mensagem de erro do serviço quando os comandos halt e reboot são chamados ou então o que pode estar errado em meu script?
se alguem tiver alguma sugestão por favor ajude-me...
Muito obrigado
Abraço