Subject: Re: The new rc.d stuff...
To: Frank van der Linden <frank@wins.uva.nl>
From: Robert Elz <kre@munnari.OZ.AU>
List: current-users
Date: 03/29/2000 08:14:07
    Date:        Tue, 28 Mar 2000 17:03:24 +0200
    From:        Frank van der Linden <frank@wins.uva.nl>
    Message-ID:  <20000328170324.A15383@wins.uva.nl>

  | It's the old problem of "which filesystems are mounted and from where".

Yes, I know.

  | dhclient wants /var/run, and /var may be mounted over the network.

Yes, that's why the suggestion for conditional dependencies.

  | However, if you use dhclient, you may want to use dhclient itself
  | to get on the network, so you're running around in circles.

You most probably do, dhclient is one of those things that needs to be able
to run starting from a minimal configuration.

  | Right now, the dhclient script assumes that /var may be mounted over
  | the network,

That's really pretty silly when you analyse it - if I had a working
network already, the chances that I want to run dhclient are pretty slim.

But since dhclient produces the hostname, and resolv.conf, and potentially
lots more (ntp.conf or parts of it) you really want it to have finished
before any of the applications that use those things run.   Eg: notionally
sendmail doesn't need the network configured before it starts, but it
does need resolv.conf, as that's only read once.

  | This adds a fair amount of complexity before you know it.

No, I know it already...

  | Currently, rcorder determines the order in
  | advance, so you can't check what may have been done before at that time.

I didn't mean that kind of dynamic checking - I meant dynamic in the
sense that you don't know in advance before rcorder runs what the
result will be (or not without executing everything rcorder does).
At the minute there isn't a lot of point running rcorder from rc at
all - it only needs to be run when rc.d is changed, and the results
saved somewhere (and doing that might save a few milliseconds at
boot time...).  I'd like to see the results able to depend upon the
needs of the particular boot (like whether or not there's a NIC
connected, etc).

It may be that there is somewhere the "one true order" which will
satisfy all needs, but somehow I suspect not.

  | You could make it dependent on variables set in a global conf file.

No thanks.   That doesn't help at all.  I want the "global conf file"
to simply go away, while that remains the rc.d job is only half done.
The dependency needs to be able to be upon something that you can
only determine after the system has booted.

kre