Subject: Re: take2...
To: None <tech-userlevel@netbsd.org>
From: Todd Vierling <tv@pobox.com>
List: tech-userlevel
Date: 12/02/1999 14:44:20
On Thu, 2 Dec 1999, Luke Mewburn wrote:

: Vendor scripts would have to be modified to have the appropriate
: PROVIDE/REQUIRE/BEFORE lines if you wanted them to start at a
: particular point. If not, they will be started sometime at the end,
: with all the other scripts that are at the `end of the chain' (this
: is part of rcorder(8), and that program could be tweaked to change
: this behaviour).

I'd expect scripts to need to be modified--even if only adding a
"wrapper"--if they needed _any_ special start order other than "run sometime
after the rest of the OS has started up".  The 1.4 and earlier state of
affairs was no different.

: You'd have to give me a really good reason for arguing for the
: larger/messier version which doesn't use run_rc_command,
: especially since the run_rc_command version is easier to read/debug.

I don't really see what's stopping us from allowing a script to use
run_rc_command _or_ parse the arguments at the script author's choice.

On Thu, 2 Dec 1999, der Mouse wrote:

: > 5. The old /etc/rc style.  Dispense with it.  It's nothing but a
: >    speed hack, really,
: 
: Not at all.  It's also an immense boon to humans that have to have
: anything to do with the boot process.  I've used SysV-style split-apart
: boot scripts and I've used BSD-style monolithic boot scripts, and for
: human frobbing, the BSD style is far easier.

I used to be in the same opinion, but I've found that most human frobbing
involves reordering something or changing a hardcoded value (which should,
indeed, be made configurable).  With the proper granularity[*] and a
repository, or at least a human-readable index of repositories, of config
info, the goal of not having to frob anything can be attained.

[*] This means VERY modular scripts.  Typically, the speed lost by multiple
scripts can be regained by "source"'ing [". filename"] the scripts rather
than running them in subshells.  With that done, the modules could be as
granular as things like "mount_nfs_disks" or even "mount_usr_local" (a
user-created script, from a template, or even an internally parsed action
name).

What I don't remember seeing in many of the proposals is an easy way for a
user to add dependencies in cases where the scripts would otherwise be
executed in arbitrary order [without modifying a particular script].  I'd
venture a proposal to have such a configuration file, so that you could say:

mount_critical_fs: nfs_client mount_stand

and get your NFS partitions and /stand mounted before things that needed
system-important filesystems.

...Or maybe I've just had too much caffeine today....

-- 
-- Todd Vierling (tv@pobox.com)