Se você verificar o que está em /etc/rc0.d
e /etc/rc6.d
, verá que antes de chegar ao seu serviço, o sistema executará primeiro killall
(prioridade 00) e, em seguida, halt
( prioridade 01).
Embora o seu serviço estivesse programado para ser executado em seguida, o computador já parou.
lrwxrwxrwx 1 root root 17 Sep 28 2012 S00killall -> ../init.d/killall
lrwxrwxrwx 1 root root 14 Sep 28 2012 S01halt -> ../init.d/halt
lrwxrwxrwx 1 root root 14 Jul 8 21:16 S10test -> ../init.d/test
O que eu faria se fosse você, é habilitar o script em runlevels que você normalmente usa, digamos 345
e depois trocar start with stop, como todos os daemons que estejam chkconfig: para estarem rodando no seu runlevel atual será chamado ao parar e reinicializar com stop
arg, antes chegar aos serviços que ele deve iniciar .
Se você quer que o seu script seja executado no último, antes de matar tudo e depois parar o seu computador, verifique qual é o mais alto (o meu é K92iptables
, então para mim seria > 92 para parar a prioridade).
Então chkconfig --del baseRhel64
primeiro, depois altere o script para que chkconfig
linha leia # chkconfig: 345 10 93
Seu script seria semelhante a este, com os nomes das funções de início e parada trocados:
#!/bin/sh
#chkconfig --list
# chkconfig: 345 10 93
stop(){
echo "'basename $0' stop"
touch /root/installscripts/test1
}
start(){
echo "'basename $0' start"
touch /root/installscripts/test2
touch /root/installscripts/"'basename $0'"
}
case "$1" in
start) start;;
stop) stop;;
*);;
echo $"Usage: $0 {start|stop}"
RETCAL=1
esac
exit 0