Forum OpenACS Q&A: Re: Oracle /etc/init.d scripts should use shutdown immediate
Manually start up AOLserver which connects to Oracle, then run
sudo /etc/init.d/oracle8i stop". Oracle does
not shut down, script hangs, but leave that script there, let
it keep trying throughout the rest of the next steps. Kill AOLserver.
Oracle is still not shutting down, ps -ef shows two nsd processes or
threads parented to 1. Plain kill of those two processes has no
effect. kill -9 killes the two nsd processes. Immediately after kill
-9 of remaining nsd processes, Oracle successfully shuts down.
$ORACLE_HOME/bin/dbshut to use "shutdown immediate"
instead of plain "shutdown". The relevent part of the script should
now look like this:
case $VERSION in 6) sqldba command=shutdown ;; *) $SQLDBA >>EOF connect internal shutdown immediate EOF ;; esacAfter changing the dbshut script, start up Oracle, manually start up AOLserver, run "
sudo /etc/init.d/oracle8i stop", and bam, Oracle shuts down right away. (The running AOLserver, of course, will now error out when trying to talk to Oracle.)
Seems very repeatable and clear. Therefore, I have switched to using "shutdown immediate" from my shutdown scripts like the above, on both Linux and Solaris.