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>