Re: Proposed release goal for lenny: Switch to dependency based boot system
I'm happy to report that in the insserv package version 1.09.0-6 just
uploaded into unstable, the dependency based boot sequencing work as I
want it to work. I believe we are ready to switch to dependency based
boot in Debian, but understand that more testing is needed to convince
others of the same. :)
When enabled using
aptitude install insserv && BAD_INSSERV_HACKER=true dpkg-reconfigure insserv
and answering 'yes' to enabling the dependency based boot, it replaces
update-rc.d with one that uses dependency information, and reorder
/etc/rc*.d/ based on the dependency information provided by 66% of the
packages with init.d scripts in unstable.
It is not easy to undo the switch to dependency based boot sequencing,
so I recommend to do this only for test installations for now.
The scripts without dependency information is assumed to depend on the
virtual dependencies $remote_fs and $syslog, and to start in runlevels
2, 3, 4 and 5, and stop in runlevels 0 (halt), 1 (single user) and 6
(reboot). This is equivalent to the current default settings used by
the normal update-rc.d.
I've tested a simple installation with base and a few common packages
(openssh, etc), and the boot and shutdown sequence was correct for
this test case. As most of the used packages should have fairly
correct dependency and runlevel information now, I believe this
feature is ready for more general testing. I believe the bugs in the
boot sequence now are in the individual packages specifying incorrect
information in their headers, and not in the insserv used to order the
For scripts with missing or incorrect information, it is possible to
override the headers by adding a file with a replacement header in
/etc/insserv/overrides/. For a few of the scripts that are missing
such header, I provide override files in
/usr/share/insserv/overrides/. I hope to get all these files included
in the packages they belong in soon.
Without activating dependency based boot, it is possible to check if
the current boot sequence is correct based on the information provided
in the init.d scripts themselves. Use the script
/usr/share/insserv/check-initd-order for this.