[Initscripts-ng-devel] Defining the workgroup objectives

a-aa a-aa at hollowtube.mine.nu
Sun Jul 31 15:58:56 UTC 2005

Gerrit Pape wrote:

>Henrique de Moraes Holschuh wrote:
>>1.  Design a distribution-agnostic interface layer for packaging systems
>>    to deal with static order-based (sysv-rc classic), static dependency-based
>>    (init-ng, LSB), dynamic dependency-based (runit?), and hybrid
>>    static-dynamic dependency based initscript subsystems
>>2.  Do the same for Debian (i.e. design the Debian implementation of 
>>    the interface defined in (1)):  
>>3.  Design either an hybrid static-dynamic or a purely dynamic dependency
>>    based initscript subsystem (completely distribution-agnostic)
>>    3a.  Write an implementation of said subsystem from scratch, OR
>>    3b.  Modify init-ng or r-unit to add whatever functionality is needed 
>>         (this need not be a fork. init-ng has a nice plugin
>>         functionality, and all code is to be sent upstream anyway!)
>>4.  Write the interface layer to plug it into Debian
>>5.  Deploy it as a proof-of-concenpt in Debian sid
>Hi, over the last years I wrote the runit init scheme, and worked on
>integrating it into Debian as an alternative to sysvinit; the proof of
>the concept is released with sarge.  There's a major difference though,
>as runit doesn't use ordinary init scripts as found in sysvinit's
>/etc/init.d/ directory, but replaces service startup scripts with (much
>simpler) run scripts.  This has good advantages, and if we already plan
>to change all init scripts in Debian, possibly extending them to carry
>dependency information, why not go one step further and replace them
>with scripts that are simpler to write, and so most probably less
>susceptible to bugs?
>As far as I understand your obejctives, runit already does most of what
>you describe:  1. it's distribution independent and even cross-platform,
>2. Debian integration is half done and still in the works, 3. it's a
>(how you call it) dynmaic dependencies based init scheme, 4. there're
>already packages in Debian using runit, and 5. proof-of-concept is in
>sarge.  But, as I said, it's not done with existing init scripts, but
>with run scripts, that can coexist with the init scripts.
>Now after sarge release, I'm about to continue working on better
>integration into Debian.  The recent runit development release
>introduces a program which can be linked into /etc/init.d/ to provide an
>LSB compliant user interface to control services managed by runit, and
>I'm currently testing how diverting init scripts (note: conffiles)
>works, doesn't look that bad.
>Next step would be to add more run scripts to Debian to replace init
>scripts, best at first in a single package, and, if applicable, later
>move them into the corresponding Debian packages.  Writing these run
>scripts is quite easy, see http://smarden.org/runit/runscripts.html
>I personally use runit as init scheme on all Debian systems, as well as
>other systems, and wouldn't mind if we switch to it as a default on
>Debian at some time, obviously.  Help with the further integration of
>runit also would be appreciated.
>Thanks, Gerrit.
In my opinion, if your gonna reinvent the init.d files, dont use
runscript, it's lacking a few important things.
It for example does exec program --no-fork (or similar) isn't a great
solution.  Most applications using pidfiles or forking are ready when
they've forked and the pidfile is up, so using --no-fork isn't a good
dependable way to start them in parallel, because there is no real way
of knowing when they are actually started.

More information about the initscripts-ng-devel mailing list