Concurrent execution of rc-scripts with rcorder(8)

Chris Rees crees at FreeBSD.org
Sat Dec 22 16:26:13 UTC 2012


Reawakening ancient thread.

On 23 August 2011 21:18, kilian <kklimek at uos.de> wrote:
> On Sun, Aug 21, 2011 at 02:54:15PM +0100, Chris Rees wrote:
>> On 21 Aug 2011 13:39, "kilian" <kklimek at uos.de> wrote:
>> >
>> > Hello,
>> >
>> > the idea to start services concurrently during boot isn't new and the
>> > question why FreeBSD doesn't do it has popped up on the forum and
>> > mailing list occasionally. So, why not give it a shot?
>> >
>> > rcorder(8) is normally used during boot to bring the rc-scripts into a
>> > particular order, so when they are executed linearly by /etc/rc, all
>> > constraints will be satisfied. I modified rcorder(8) to enable it to
>> > run rc-scripts concurrently, while keeping track of the constraints as
>> > rc-scripts start and finish. You can find the code at
>> > https://github.com/kil/rcorder. As it works now, it will fall back to the
>> > current mode of execution if anything goes wrong. So, if worst comes to
>> > worst, booting takes a bit longer.
>> >
>> > If you feel brave, give it a try (Actually, not too much bravery is
>> needed:
>> > on all boots of my machine it worked perfectly every time.)
>> >
>> > I haven't done any measurements yet on how large the speedup is, but
>> booting
>> > feels a bit faster with it. Also, there probably is room for improvement.
>> > Any ideas and feedback are very welcome!
>> >
>> > -kilian
>> >
>>
>> I might suggest moving this to rc at . I'll try it later, looks interesting.
>>
>> Chris
>
> For anyone who is interested, updated the README[1] with some numbers,
> detailing the influence on booting time.

Hi Kilian, Buganini,

I've been looking over both of your rc implementations, and they both
seem to do the job well.  The main reservation I have for rcexecr [1]
is that it is not optional.  Whether that is a problem is up for
debate, but I think that it is important at least for the mid term to
have a rc_parallel option; rc dependencies are funny things, and it
would be absolutely unacceptable to have strange failures on
production boxes.  Every rc script would have to be reviewed in time
(including ports), to ensure that they fitted in properly.

Chris

[1] https://github.com/buganini/rcexecr/

[2] https://github.com/kil/rcorder


More information about the freebsd-rc mailing list