Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 18 Jul 2008 22:19:22 -0700
From:      Doug Barton <dougb@FreeBSD.org>
To:        ticso@cicely.de
Cc:        freebsd-current@freebsd.org
Subject:   Re: rc improvements (wanted?)
Message-ID:  <4881795A.4070604@FreeBSD.org>
In-Reply-To: <20080718122928.GD35340@cicely7.cicely.de>
References:  <200807172056.08835.naylor.b.david@gmail.com>	<487FCA89.2010308@FreeBSD.org>	<20080718083725.97823be0tg13fn6s@webmail.leidinger.net>	<20080718071806.GV62764@server.vk2pj.dyndns.org> <20080718122928.GD35340@cicely7.cicely.de>

next in thread | previous in thread | raw e-mail | index | archive | help
Bernd Walter wrote:
> Speaking about small systems, where startup time is more a problem than
> on 08/15 desktop and server systems.
> What I would love to see is that scripts like moused, ypserv, lpt, etc
> are not started if the services are disabled.

That wold be a neat trick, how do you propose we accomplish it? (no, 
I'm not being snide.)

There are 144 scripts in /etc/rc.d/ on HEAD right now. Out of those I 
count roughly 40 that I actually need, so let's round off to 100 
unnecessary scripts to make the math easy. On my system (a pretty fast 
C2D) it takes roughly .3 seconds of wall clock time to run one script 
that is not enabled. Now cut that roughly in half since each of those 
scripts will not have to suck in /etc/rc.subr and /etc/rc.conf* when 
run at boot time, and that's 15 seconds of boot time that I could save 
on average, let's say +/- 5 seconds. That's worth giving some thought to.

One way you could do this is to have /etc/rc.d/active and 
/etc/rc.d/inactive (and probably an /etc/rc.d/system for critical 
stuff that most people shouldn't touch). Then you could have a 
vipw-like system to allow users to edit rc.conf that would move the 
scripts to the right directory. Of course, this would be fraught with 
potential for problems. :)

Another thing that would work for systems that a more sophisticated 
admin/user updates with mergemaster would be to write a pre-compare 
script that removes all the scripts you know you don't need from the 
temproot/etc/rc.d so that they don't get installed. Of course the 
benefit of that would not be nearly as wide spread, but it would also 
not result in so much foot-shooting.

> So far each script is started, sucks in routines plus rc.conf

We're actually a little smarter than that. :) rc.subr and 
rc.conf[.local] are loaded once by rc, then each script that runs 
inherits those values.

hth,

Doug

-- 

     This .signature sanitized for your protection




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