Subject: Re: CVS commit: basesrc
To: John Nemeth <jnemeth@victoria.tc.ca>
From: Luke Mewburn <lukem@wasabisystems.com>
List: current-users
Date: 05/16/2001 22:47:55
On Wed, May 16, 2001 at 04:50:01AM -0700, John Nemeth wrote:
> On Aug 25,  7:48am, Luke Mewburn wrote:
> } 
> } Module Name:	basesrc
> } Committed By:	lukem
> } Date:		Wed May  9 16:41:00 UTC 2001
> } 
> } Modified Files:
> } 	basesrc/etc: rc.subr
> } 
> } Log Message:
> } * change wait_for_pids() to spin forever (rather than just ~ 65 seconds).
> } * change the default `stop' case to wait_for_pids after kill $sig_stop.
> }   this means that "/etc/rc.d/foo stop" won't return until the service
> }   has shut down. third party scripts that implement their own stop mechanism
> }   should offer this functionality as well.
> } * in the default restart case, don't bother doing `$0 poll' in between
> }   stop & start, because of the change above. (XXX: deprecate poll ?)
> 
>      Yuck!  I really don't like this change.  This is one of the things
> I hate about SysV.  I have seen too many cases where some service fails
> to stop and hangs the shutdown process.  Murphy's Law means that
> usually you are far enough along in the shutdown process that you can't
> recover and have to hit the "big red button" which leads to problems
> with things like corrupt filesystems.  Processes that don't die within
> a reasonable period of time should be killed with extreme prejudice.
> If you're going to go this route, then you should at least make the old
> behaviour an option.

There's nothing stopping you from hitting ^C to interrupt the wait
whilst rc.shutdown is running that script.

In the case of a system shutdown running /etc/rc.shutdown, the only
things that actually get run by default are: cron, inetd, xdm,
and /etc/rc.shutdown.local.

In the case of a manual restart of subsystems such as amd (and
third party stuff like squid) actually works more reliably, because
you know things have been shutdown.


I've used `traditional SYSV' systems which do try and shut down
everything and have had to uncleanly shut them down because a service
wouldn't go down cleanly. I haven't experienced this under NetBSD's
rc.d system, and I've got a few local scripts that get run at shut
down time as well. And if something does play up, there's always the
terminal interrupt key...

Luke.