Subject: take2...
To: None <tech-userlevel@netbsd.org>
From: Darren Reed <darrenr@reed.wattle.id.au>
List: tech-userlevel
Date: 12/02/1999 22:29:36
Well, there's a lot of options there, and I'm not sure I want to choose
one.  Instead, I'll offer my opinion on what I think is `best' :-)

1. rc scripts.  I like the idea of dependencies much better than that of
   choosing a number.  I want the rc scripts there so that I can arbitrarily
   start or stop sub-systems within NetBSD, be they NFS, named, etc, without
   having to manually work through the steps by interrogating /etc/rc.  The
   advantage of dependencies over numbering is that no matter what numbering
   system you choose, you will eventually become "crowded" in some section
   as "before this and after that" scenarios get slotted in.

2. rcX.d directory names.  I have only one problem with having only
   /etc/init.d for holding scripts and that is there's no obvious way to
   have scripts get executed for booting into single user mode as distinct
   from being a part of the bootup into multiuser mode.  Other than that,
   unless we have run levels, rcX.d is bad, IMHO.  I'm not a fan of run
   levels except for single & multiuser modes so maybe what I'm saying
   is that the directory names should be "/etc/rc.single" and
   "/etc/rc.multi" (duck).  At least that makes it more clean, as distinct
   from having only /etc/init.d, what scripts need to be exercised when
   shutting down from multiuser mode to single user mode.

3. As for vendor scripts and numbering, etc, vendors are in the shit anyway
   because the standard script used on Solaris (or linux) will not work on
   NetBSD with the current implementation due to the "run_rc_command" method
   being offered.  So if they need to do a custom script for us, they might
   as well do it right and add the right dependencies.  I think you've
   missed that difference when comparing what's being offered with what is
   in place today.  That is unless you'd scrap the "run_rc_command" code
   if "dumpstart" was no longer needed, etc.

4. Offering multiple methods.  This sucks more ass than having one or the
   other "bad method".  There can be only one.  As is often said around
   here, "do it once, do it right".  In the past we've not had any scope
   for choice so why the future must offer it seems unclear, except to pacify
   those who are likely to be vocal in opposition, jumping up and down until
   they're red and blue all over.  Whilst offering people choice seems good
   now, sometime down the track when we're supporting this, we need to bear
   in mind that we're supporting a multitude of rc script startups rather
   than just one method.  I can't see that making life easier for us to
   support it at various levels.

5. The old /etc/rc style.  Dispense with it.  It's nothing but a speed hack,
   really, and support for it seems to agree with that sentiment well.  There
   have been a lot of changes, in the recent past, which have resulted in
   slowing of things here and there (e.g. using -O2 rather than -O).  I've
   heard people complain about it being slower but nobody seems that fussed
   that they've actually gone back to using -O) and they've been pretty much
   accepted as a part of NetBSD.

6. I really don't like the current design for rc scripts with "start_cmd=",
   etc.  It unecessarily restricts an independant script on the contents of
   that script.  Each script should be run, not define variables which get
   executed.

Darren