Назад | Перейти на главную страницу

Мой сценарий init.d никогда не вызывается с параметром остановки?

Я создал сценарий blueBoxT для запуска и остановки Oracle и поместил его в каталог /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

Я сделал символические ссылки так ...

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

Журнал в /root/blueBoxT.log показывает команду запуска и экземпляр Oracle работает.

Команда остановки никогда не вызывается. Этого нет в моем журнале.

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

Я выключил свою Fedora 10 с помощью команды ...

shutdown -h now

Что я неправильно сконфигурировал, чтобы не получать остановку, чтобы я мог нормально завершить работу Oracle?

У меня нет этой версии Fedora, но для RHEL5 важная часть /etc/rc.d/rc:

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

Ваша проблема может заключаться в том, что вы не трогаете /var/lock/subsys/blueBox при запуске.

Также файл в init.d называется blueBoxT тогда как ваши сценарии rc? .d называются K??blueBox (без следа T), что сбивает с толку.