Meu script init.d nunca é chamado com o parâmetro stop?

2

Eu criei um script chamado blueBoxT para iniciar e parar o Oracle e o coloquei no diretório /etc/init.d.

#!/bin/bash
echo "blueBoxT $1 - 'date '+%Y%m%d%H%M''" >> /root/blueBoxT.log
case "$1" in
  'start')
    echo "Starting Oracle"
    su - oracle -c "/home/oracle/startDBT"
    ;;
  'stop')
    echo "Stopping Oracle"
    su - oracle -c "/home/oracle/stopDBT"
    ;;
  *)
    echo "'basename $0': usage: 'basename $0' { stop | start }"
    ;;
esac
exit 0

Eu fiz os links simbólicos assim ...

root@dev /etc/rc.d
# find . -name *blueBox*
./rc2.d/K11blueBox
./rc6.d/K11blueBox
./init.d/blueBoxT
./rc1.d/K11blueBox
./rc3.d/S97blueBox
./rc0.d/K11blueBox
./rc5.d/S97blueBox
./rc4.d/S97blueBox

O log em /root/blueBoxT.log mostra o comando start e a instância do Oracle está ativa.

O comando de parada nunca parece ser chamado. Não está no meu log.

root@dev /root
# cat blueBoxT.log
blueBoxT start - 201008051323
blueBoxT start - 201008051327
blueBoxT start - 201008051346
blueBoxT start - 201008051356

Eu desligo meu Fedora 10 usando o comando ...

shutdown -h now

O que eu configurei incorretamente para não receber a parada para que eu possa fazer um desligamento ordenado do Oracle?

    
por dacracot 05.08.2010 / 23:12

1 resposta

5

Eu não tenho essa versão do Fedora mas para o RHEL5 a parte importante do /etc/rc.d/rc é:

subsys=${i#/etc/rc$runlevel.d/K??}
[ -f /var/lock/subsys/$subsys -o -f /var/lock/subsys/$subsys.init ] \
        || continue

Seu problema pode ser que você não toque em /var/lock/subsys/blueBox ao iniciar.

Além disso, o arquivo no init.d é chamado de blueBoxT , enquanto os scripts rc? .d são chamados de K??blueBox (sem T ), o que é confuso.

    
por 06.08.2010 / 00:31