Differences between revisions 3 and 4
Revision 3 as of 2007-06-12 16:39:15
Size: 2352
Editor: nomeata
Comment:
Revision 4 as of 2007-06-12 18:15:19
Size: 2353
Editor: ?MikkoTorni
Comment:
Deletions are marked like this. Additions are marked like this.
Line 52: Line 52:
 * weed will care about the runit side  * wheat will care about the runit side

Summary

A project to provide an infrastructure for automatic init script generation in simple cases.

Protocol from DebConf 7 BoF

Current Problems

  • Debian supports only Sys-V-Init
  • Other systems hard to support get packages to provide init scripts
  • Changes (bug or features) in lots of init scripts are hard to do

Solution

Packages ship simple “metainit” files that contain the minimal information needed to create init scripts for (hopefully) any init system. We only want to support the normal, simple case, any daemon with special needs still has to write the init scripts themselves

Scripts generated at build or install time

  • gwolf: Use dpkg-trigger
  • gwolf: Easier to implement changes (no recompilation needed)
  • panthera: add additional build dependency which handle the registration/generation of init scripts
  • nomeata: we need it on client side to resolve dependecies to svs-v

Consenus: workstation side

What features (metainit file field) to be supported?

  • daemon name / description
  • how to start, forking or non-forking?
    • required: non-forking start
    • others not at the moment, maybe implemented later
  • Dependencies according to the LSB standard, but without Default-Start and Default-Stop, see:
  • uid/gid
  • hooks (inline /bin/sh fragments)
    • - pre-start - post-stop
  • reload/restart functionality:
    • - default: stopping and starting - optionally: specifying a signal

Implementation details

  • metainit files to be conffiles, therefore user editable
  • generated files are deleted only when the package is removed in remove (not only in purge)
  • maybe non-protective comments in generated files
  • Problem: What happens if a new version stopps using our scheme...

Helpers

  • ["nomeata"] will try to start some code
  • wheat will care about the runit side

TODO

  • Define metainit file format
  • update-metainit
  • metainit-sysvinit