Skip site navigation (1)Skip section navigation (2)
Date:      09 Jun 2003 20:57:34 +1000
From:      Andrew Reilly <areilly@bigpond.net.au>
To:        Terry Lambert <tlambert2@mindspring.com>
Cc:        arch@freebsd.org
Subject:   Re: Making a dynamically-linked root
Message-ID:  <1055156254.1799.10.camel@gurney.reilly.home>
In-Reply-To: <3EDD7CFA.4795FB99@mindspring.com>
References:  <20030602171942.GA87863@roark.gnf.org> <xzpznl02nry.fsf@flood.ping.uio.no> <20030603080456.GA57773@cirb503493.alcatel.com.au> <3EDD7CFA.4795FB99@mindspring.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 2003-06-04 at 15:00, Terry Lambert wrote:
> The main problem we ran into with doing this on the InterJet
> was thatsome services started later would finish starting
> before earlier services on which they were dependent.
> 
[examples]
>
> People try to pretend that the dependencies that exist are
> between programs, but they're actually between service
> providers and service consumers, and largely independent of
> the programs providing the services.  On top of that, the
> dependencies tend to be both hard and soft, e.g. it's possible
> to continue to offer a degraded service, rather than failing
> outright, if some dependent services aren't there (e.g. you
> can log by IP address if DNS isn't up to provide reverse
> name mappings to look pretty in your logs, etc.).

That there are dependencies between services is unarguable, but I wonder
how much of that really needs to be codified in startup orders, and how
much can be sorted out dynamically, by making the implementations of
these services robust in the absence of their dependencies.

Maybe that path is more trouble than just codifying a dependency graph. 
Which was what was so good about the traditional, linear, rc script, of
course.

I haven't analysed the startup in any great detail myself, but as far as
I can tell, my "djb land" does indeed all start up in parallel, and the
various pieces just cope until the others are up.  That's qmail, djbdns
and tinydns.  There's certainly no dependency or causality encoded
explicitly in the /service directory.  I've thought about moving other
services that currently run from /usr/local/etc/rc.d (i.e., things that
the system doesn't care about) to run from /service in the same way, but
lack of circular tuits has prevented me, thus far.

Cheers,

-- 
Andrew Reilly <areilly@bigpond.net.au>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1055156254.1799.10.camel>