[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: administration of initscripts



On Mon, Apr 15, 2013 at 11:21:00AM -0500, Yaro Kasear wrote:
> [systemd] has a concurrent startup, meaning it brings a system up and down
> *very* quickly by starting independent units at the same time.
> Standard SysV init generally cannot do this, though it's hard to
> account for how initscripts will work, but I've not seen many
> distributions try and fashion a fully concurrent init system through
> init scripts.

Both Debian and SuSE use insserv to build a dependency graph of the
script relations, and startpar to run the scripts in the correct
order by traversing the graph; this can (and does) enable proper
parallelisation.

> OpenRC allegedly also has concurrent startup, but when
> using it on Gentoo I've never seen it boot as fast as systemd brings
> up Arch.

While OpenRC can certainly start things in parallel, its design
involves local recursion to solve dependencies by iteratively
invoking dependencies, and checking whether or not a given service is
started.  This has the virtue of simplicity, but some things are not
possible (inverse dependencies such as X-Starts-Before) [or more
accurately are extremely expensive since you would have to evaluate
every script's deps at every point] since there isn't a "global"
overview--you're traversing the graph node by node without being able
to see anything except the edges at that one node.

In general, the OpenRC design is nice, but being able to introspect
all the dependencies once rather than repeated evaluation would be
a very nice improvement.  Automatic startup of dependencies is great,
and one thing LSB scripts don't currently do.


Regards,
Roger

-- 
  .''`.  Roger Leigh
 : :' :  Debian GNU/Linux    http://people.debian.org/~rleigh/
 `. `'   schroot and sbuild  http://alioth.debian.org/projects/buildd-tools
   `-    GPG Public Key      F33D 281D 470A B443 6756 147C 07B3 C8BC 4083 E800


Reply to: