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

Re: faster boot

i have working minit packages (not sure if i uploaded them to
ppl.d.o/~erich/boot/ yet) and i've been using them for weeks to init my
There are a couple of open issues, that is why i didn't upload them.
for example current init-scripts are not aware of the monitoring
capabilities; when the apache package gets upgraded i should stop apache
manually, then upgrade, then stop it via init.d and restart it via
I have written some basic scripts which allow for sysvinit backwards
compatibility (i.e. rcX.d is processed, but when a minit-version of a
script is found the daemon is started supervised instead).

But (maybe to me still using a lot of sysvinit scripts and not too much
parallel startup yet) i can't say i noticed much speedup during startup.
In earlier experiments with minit like a year ago or so i did get a big
speedup (but i had been rewriting all my init scripts...)

If you want to do it properly, it can get a lot of work. For example i
wrote patches for atd and cron to run in foreground (one of which was
accepted by the maintainer, no reaction from the other) to allow them to
be monitored by minit without hacks.
But there are bigger issues. Like mysql, which thinks it must ignore
TERM signals. I had to write a wrapper script which catches the signal
and calls a mysql shutdown script...

I also had packages for simpleinit-msb, which is an enhancement of
simpleinit as in the utils-linux source.
While it worked fairly well for init, i exchanged mails with the author
which said he should better have started from scratch than using the
existing simpleinit code.

If we want to introduce a new init system into debian, we should prepare
a generic init framework (like many distributions already have in place)
that allows for
- silent/verbose boot and output redirection
- fancy display of success/failure (for example with colors)
- bootsplash and boot-icons integration
- needs, provides as in LSB suggested
- status reporting (which services are running?)
- disabling of services in a consistent way (some are disabled via
  /etc/defaults/package, some expect you to edit the init.d script,
  some suggest removing the links)
- hooks for other init systems (for example i'd like the apache init.d 
  script to be aware of my minit, and restart itself via minit)

Some distributions try to provide a "check" command for each init
script; afaict we don't. I've seen "start-now", "stop-now" commands
which override "disabled" services and so on.

runit is okay, and it has debian packages already. What i didn't like
about runit is the "forest" of processes it creates. The output of
pstree is really fancy. ;-) Minit seems to be able to do most of this
without using that many processes.

Erich Schubert
    erich@(vitavonni.de|debian.org)    --    GPG Key ID: 4B3A135C    (o_
  A polar bear is a rectangular bear after a coordinate transform.   //\
   Die kürzeste Verbindung zwischen zwei Menschen ist ein Lächeln.   V_/_

Reply to: