[CentOS] Shutdown script not being run

Mon Dec 19 20:42:55 UTC 2005
Bowie Bailey <Bowie_Bailey at BUC.com>

William A. Mahaffey III <mailto:wam at HiWAAY.net> wrote:
> Bowie Bailey wrote:
> 
> > I've got an odd problem.  My server will not shutdown normally
> > because the AoE driver is not being shut down properly.  While
> > investigating the problem, I found that the aoe script is
> > apparently not being called for shutdown.  I have been able to
> > duplicate this with a brand new test script. 
> > 
> > My test script is just a simple file that echos back the start or
> > stop command: 
> > 
> >    #!/bin/bash
> >    #
> >    # chkconfig: 45 01 99
> >    # description: Test Start and stop script
> >    #
> > 
> >    echo "Called with $1"
> > 
> > I installed it with 'chkconfig --add mytest'.
> > 
> > The softlinks exist in the runlevel directories:
> >    /etc/rc.d/init.d/mytest
> >    /etc/rc.d/rc0.d/K99mytest
> >    /etc/rc.d/rc1.d/K99mytest
> >    /etc/rc.d/rc2.d/K99mytest
> >    /etc/rc.d/rc3.d/K99mytest
> >    /etc/rc.d/rc4.d/S01mytest
> >    /etc/rc.d/rc5.d/S01mytest
> >    /etc/rc.d/rc6.d/K99mytest
> > 
> > When I 'telinit 4', I can see the script output in
> > /var/log/messages: 
> > 
> >    Dec 19 11:46:49 bnofdn1 mytest: Called with start
> >    Dec 19 11:46:49 bnofdn1 rc: Starting mytest:  succeeded
> > 
> > When I 'telinit 3', there is no output from this script.  It is
> > like the script is not even being called.
> > 
> > Am I doing something stupid here?  When I do 'telinit 3' from a
> > higher runlevel, isn't it supposed to run all of the 'K*' scripts
> > in rc3.d with a 'stop' argument? 
> 
> Well, as I look at your links, I see none to start your script at
> runlevel 3, i.e. no S01myTest under rc3.d .... maybe I'm missing
> something ....

It's not supposed to start in runlevel 3.  It's only supposed to run in
levels 4 and 5.

> The init process only runs K* under runlevel 4 (rc4.d) when exiting
> runlevel 4, then runs all of the S* stuff under the new runlevel.
> $0.02, no more, no less ....

That's not what the rc script appears to be doing.  It simply checks the
current runlevel and then runs all the scripts in that directory (kill
scripts first, and then start scripts).

-- 
Bowie