Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 24 Oct 2000 20:24:58 +0200
From:      Gerhard Sittig <Gerhard.Sittig@gmx.net>
To:        freebsd-current@FreeBSD.ORG
Subject:   Re: new rc.network6 and rc.firewall6
Message-ID:  <20001024202458.K25237@speedy.gsinet>
In-Reply-To: <Pine.LNX.4.10.10010241612080.32319-100000@inet.ssc.nsu.ru>; from danfe@inet.ssc.nsu.ru on Tue, Oct 24, 2000 at 04:14:36PM %2B0700
References:  <200010240903.CAA13916@usr01.primenet.com> <Pine.LNX.4.10.10010241612080.32319-100000@inet.ssc.nsu.ru>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Oct 24, 2000 at 16:14 +0700, Alexey Dokuchaev wrote:
> On Tue, 24 Oct 2000, Terry Lambert wrote:
> 
> > > Well, would not be this stepping aside from BSD startup
> > > sequence, which we all know and love?  Having dozens of
> > > small files instead of pair of big ones always frustrates
> > > me when I have to work with linux.
> > 
> > Install a binary package that needs to be started when the
> > system is booted and needs to be shutdown when the system is
> > shutdown.
> 
> That's what /usr/local/etc/rc.d/ was for for years!  Put all
> your application-specific scripts there, but leave base-system
> monotilithic startup alone :-)

What if I don't employ bind but use something else (djbdns or
homebrew software) instead?  Where do I put those in into the
startup sequence?  When /usr/local/etc/rc.d/*.sh are run it could
be too late since on the way there a few services died due to DNS
errors.

What about other "essential" services like foreign file systems
("unnatural" things like coda?) or mail transfer agents likely to
be used / needed before other things happen but not available in
the base?  What if I want to load some UPS daemon quite early?
How do I implement hardcoded ARP tables short after NIC setup and
right before services' startup?  What about other hacks one had
to introduce into /etc/rc*?  Think of the ipf "workaround" in PR
20202.  It could have been as easy as adding one more file or
replacing the ipfw counterpart.  At the moment it is about having
someone stuff the code into some other environment.  Without easy
moving around in case it's wrongly placed (think of 30 lines
deleted and 30 lines added - without the chance to easily see if
they're still the same and just have moved - against one line
deleted and one line added - more obviously documenting a moved
invocation).

Plugging (dropping) in just another script and have it register
its sequence number somewhere (or replacing an existing one) is
always easier than modifying a huge pile of code.

And think about undoing those additions (insertions) upon
removal:  deleting a single file is really trivial compared to
identifying and removing a chunk in a big file.  And changing
your mind about what to do and how to do it for a certain service
won't interfere with all the other stuff.

I don't like thinking back of the situation, where I had to start
a (usually not running) NFS server and a NFS client for remote
installworlds.  Eyeballing nested rc scripts, comparing them
against the rc.conf settings and typing all those by hand and not
missing something is really not what you want to have when you
actually have other worries to take care of.  And then again -
how do I kill this damned special daemon in a clear way?  Of
course every one of them has a way and if you're lucky it's only
five ways for seven services, but that's still too much of a
complexity for a simple human mind with its given restrictions.

Think of the run-parts layout in the cronjob directories and the
advantages are (should be) really obvious.  The "clutter" with
the symlinks in Linux come from the notion of having runlevels,
BTW.  For BSD (simple straight bootup, endless run and simple
straight shutdown, with a little change sometimes as new services
are needed or not needed any longer) there should either be no
links and a sequence description or just one pile of "numbered
links" besides the "basename'd, plain working" scripts.

BTW:  When I wouldn't like those many single files I would
honestly think about combining all the source code into one or at
most two files. :)  What are all those header files good for if
not for causing the preprocessor to parse them over and over for
no real gain after the first time?  This analogy might
demonstrate best what modularity is able to gain, and that
devoting processing power for tedious routine jobs can free human
resources for other jobs at a more abstract level (i.e. closer to
solving "the real" problem instead of unnecessarily fiddling with
boring details and introducing dull new errors).


virtually yours   82D1 9B9C 01DC 4FB4 D7B4  61BE 3F49 4F77 72DE DA76
Gerhard Sittig   true | mail -s "get gpg key" Gerhard.Sittig@gmx.net
-- 
     If you don't understand or are scared by any of the above
             ask your parents or an adult to help you.


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




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