Subject: init.d is back
To: Michael Graff <explorer@flame.org>
From: Miles Nordin <carton@Ivy.NET>
List: netbsd-advocacy
Date: 12/07/1999 01:01:57
On 6 Dec 1999, Michael Graff wrote:

> Well, if /etc/rc drove the /etc/init.d configuration stuff (that is,
> it was what started the scripts there) you could simply:

Yeah.  Well, uh, let me be the first to add to your pile of bricks.  My
brick has got a piece of paper tied around it that says,

  ``If you want to get a copy of System V, you know where you can go.''

I used to just _love_ that white-green-red blinking junk in HPUX.  Then
something failed to start on HPUX, and I realized I had no idea why
because all the messages were getting written to some magic log file and
emailed to the HPUX Central Logging Agency by the HPUX CodeRedWizard
version 10.20.114.574-pl5. HP Internal Document 4745-19D: ``If the lUser
wants to know what's meant by FAIL, he can call his Authorized Technical
Priesthood Representative for a $200/hr telephone consultation.  
ha-ha-ha!'' My reaction was something like, ``wait a minute, i've been
scammed.  those Devious Bastards fooled me again!''

I thought init.d was a fine idea, too, until I started using NetBSD and
realized that for some strange and mysterious reason, every time I typed
``halt'', my box promptly and cleanly shut itself down, unmounted _all_
the filesystems, and sync'ed the disks.  And it did it every time.  Coming
from the Linux world, I thought this rather odd.  Normally, one needs to
wait while each subsystem shuts itself down, and if one of them won't,
neither will your box.

Likewise, my NetBSD box seemed to be stuck starting up something one time,
so i fugured what-the-heck and hit ^C.  It worked!  It continued starting.
I remembered having to wait a full 60seconds for sendmail to time out
something or other on Linux, and ^C was useless with their rc.d/init.d
spaghetti.  I'll not even go into the sort of project that thinks ^T was a
superfluous feature.

_IF_ init.d were a useful feature, it wouldn't hold a candle to basic
simple workingness, like having the box shut down as told, and having ^C
kill deviant daemons keeping your box from coming up.

If you want to change the startup script, do something useful, like get
subsystems to respect dependencies and start in parallel, so named and
atalkd can be waiting on the network at the same time as the /dev
databawse is getting built.  Or implement some timeouts so one broken
subsystem won't keep the whole box from coming up unattended.  init.d is
just fancy vendormess for people who don't know how to use a text editor.

-- 
Miles Nordin / v:1-888-857-2723 fax:+1 530 579-8680
555 Bryant Street PMB 182 / Palo Alto, CA 94301-1700 / US