Subject: Re: /etc/default
To: Peter Seebach <seebs@solon.com>
From: Leo Bicknell <bicknell@ufp.org>
List: current-users
Date: 07/26/1995 08:19:38
> I have to say, if someone's going to mention them, that the SVR4 run levels
> were a massive boon to me as a sysadmin.  It made it trivial to
> keep several different "system states" configured and available, and switch
> between them.  How do you switch to single-user on NetBSD?

	"shutdown now"

	I'll put in my two sense about run levels/init.d stuff.  I much
prefer the /etc/rc and /etc/rc.local model of BSD.  It is nice because it
clearly seperates the system and local config.  It is also nice because
if you want to know when something starts up you have two scripts to 
look in, not 20.  Truthfully I don't even like things like /etc/netstart.

	Someone mentioned it was easier for their install because they
could just drop in an init.d script.  There were two problems with 
this.  The first is I would be extremely aggervated if things just
started adding programs to start up on me.  I think a good system
administrator should know what's run at startup, and how it's run.
The second is he made the assuption that "S99uxxxx" would be the last
thing run.  That's definately not true here.  To keep our local stuff
seperate we made a init.d/local directory, and rc?.d/local directories.
The system startup scripts were modified so that they ran everything in
the rc?.d directory, and _then_ ran everything in local in the same order.

	The most conveniant thing about having all the small init.d
scripts is the ability to do things like "init.d/nfs stop"/
"init.d/nfs start".  That is handy.  I think we can make the /etc/rc*
setup a lot easier to use with a couple of other things though:

	All programs should write out /var/run/programname.pid (or
in some other location, OSF/1 uses /var/run).  You should be able
to do something like "kill -HUP inetd", which kill would intrepret
as "kill -HUP `cat /var/run/inetd.pid`".  The other thing is 
make it so daemons don't need any comand line arguments when run
(this is almost true), so to restart all you need is "inetd"
(assuming it's in your path).

	Granted, this breaks down for things like nfs above, perhaps
having an nfsstart and an nfsstop script wouldn't be a bad solution,
I'm not sure if I like that idea though.

	Basically I think the whole run level thing is too complicated.
99.9% of the time your system is fully up and running (at least with
most people), and the other 0.1% of the time you probably want
single user mode to do maintance.  Why add all sorts of other functionality
that will simply confuse many people, and cause extra work for others?


-- 
Leo Bicknell - bicknell@ufp.org    | Make a little birdhouse
               bicknell@vt.edu     | in your soul......
               bicknell@cs.vt.edu  | They Might
http://www.ufp.org/~bicknell/      | Be Giants