Status of init.d dependency documentation effort

Petter Reinholdtsen pere at
Sun Nov 13 12:52:44 UTC 2005

So, the work on adding dependency information to the init.d scripts is
progressing nicely.  In the sid chroot I use for testing, 28 of 78
scripts now include dependency information, and the insserv package
include dependencies for 166 init.d scripts in

I've made a simple script to check the boot order,
/usr/share/insserv/check-initd-order.  It will check the script order
in /etc/rcS.d/ and /etc/rc2.d/ when run without arguments, and
generate a graphviz (dotty) graph when run with -g.  It can be used to
visualize the current dependencies.

To reorder the boot sequence based on the dependency information
provided, I've made a script /usr/sbin/update-bootsystem-insserv.  It
take a backup of the current boot sequence before reordering all
init.d scripts.

I believe the start sequence dependencies are getting close to
correct, but that there are problems with the stop sequences.  Part of
the problem is based on the fact that the scripts in rc0.d/ and rc6.d/
are used as stop scripts no matter if the symlink is a start (S#*) or
stop (K#*) symlink.  To get the stop sequence correct, I suspect all
S* files in rc0.d/ and rc6.d/ need to be renamed to K* files before
the sequence is reordered.

It would be great if more people helped out getting the dependencies
documented in the init.d scripts, and debugged the dependencies
provided by insserv.  I'm quite sure I have bugs in the current
dependency override files, as it is unlikely I was able to write all
166 files without misunderstandings.


More information about the initscripts-ng-devel mailing list