836
Comment: Start on status page for dependency based boot.
|
6666
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
## page was renamed from LSBInitScripts/DependecyBasedBoot | |
Line 7: | Line 8: |
The feature [http://lists.debian.org/debian-devel-announce/2008/01/msg00004.html was announced on debian-devel-announce] 2008-01-17. A [http://lists.debian.org/debian-devel-announce/2008/03/msg00011.html status update message] was sent 2008-03-16. A new [:LSBInitScripts/DependencyBasedBoot/200805-status:status update message] is being worked on. == Advantages == Did you every need to insert a init.d scripts Y before init.d scripts Z and after init.d script X, where both Z and X is started using boot sequence number 20 (as in 20X and 20Z)? Adding your script as 20Y would not cut it, because you need Z to start before X. To do this, in Debian you currently need to talk to the maintainer of packages with scripts Z and X, asking one of them (or both) to move their script into a different number. Dependency based boot sequencing make it possible for each package maintainer to specify the dependencies of its scripts, and leave the number allocation to the dependency resolver. === Example of such problems === * http://bugs.debian.org/294053 * http://bugs.debian.org/279297 * http://bugs.debian.org/475626 == Status == |
|
Line 8: | Line 36: |
to coordinate an effort to implement it for Debian Lenny. | to coordinate an effort to implement it for Debian Lenny. It is [http://lists.debian.org/debian-release/2007/06/msg00164.html proposed] as a [http://release.debian.org/lenny-goals.txt release goal] for Lenny. |
Line 10: | Line 38: |
|| || 2007-07-03 || || packages with init.d scripts || ? || || packages without LSB headers || [http://lintian.debian.org/reports/tags.html 373] || |
|| || 2007-07-03 || 2007-07-22 || 2007-08-08 || 2007-09-06 || 2007-10-24 || 2007-11-14 || 2007-11-29 || 2007-12-22 || 2007-12-30 || 2008-01-06 || 2008-01-14 || 2008-01-26 || 2008-02-03 || 2008-02-08 || 2008-02-20 || 2008-02-23 || 2008-03-07 || 2008-03-09 || 2008-03-13 || 2008-03-19 || 2008-04-16 || 2008-05-01 || 2008-05-18 || || packages with init.d scripts || 843 || 843|| 845 || 849 || 855 || 852 || 851 || 857 || 860 || 863 || 863 || 864 || 863 || 863 || 866 || 866 || 873 || 873 || 873 || 873 || 873 || 873 || 873 || || fraction with LSB headers || 56% || 57% || 58% || 60% || 62% || 63% || 64% || 66% || 67% || 68% || 69% || 70% || 73% || 73% || 76% || 77% || 78% || 79% || 80% || 83% || 98% || 99% || 99% || || packages without LSB headers || 373 || 363|| 353 || 336 || 325 || 319 || 303 || 292 || 287 || 280 || 269 || 258 || 237 || 229 || 212 || 203 || 187 || 181 || 172 || 148 || 16 || 12 || 9 || || base packages without LSB headers || 2 of 40 || || || || || 1 of 40 (1 of 12 pkgs) || || || || 0 of 38 (0 of 10 pkgs) || 0 || 0 || 0 || 0 || 0 || 0 || 0 || 0 || 0 || 0 || 0 || 0 || 0 || || desktop packages without LSB headers || 6 of 58 || || || || || 7 of 70 (7 of 39 pkgs) || || || || 4 of 75 (4 of 42 pkgs) || || || || || || || || || || || || || 0 || |
Line 14: | Line 45: |
To enable dependency based boot, the insserv package can be used. | A number of [http://bugs.debian.org/cgi-bin/pkgreport.cgi?usertag=initscripts-ng-devel@lists.alioth.debian.org&dist=unstable bug reports] are submitted to request LSB headers in init.d scripts. It is useful to track [http://bugs.debian.org/cgi-bin/pkgreport.cgi?usertag=initscripts-ng-devel@lists.alioth.debian.org&dist=testing the ones open in testing] as well. |
Line 16: | Line 47: |
At debconf7, Petter Reinholdtsen gave a [http://user.skolelinux.no/~pere/mypapers/200706-bootseq/200706-bootseq.html talk] about the dependency based boot system. |
=== Known issues === * It is not possible to migrate between exim and postfix without purging the other package, due to conflicting provides. * Some scripts provide the same service, and this confuses insserv. Some of the scripts are scripts that have been removed from their package, but not properly removed from disk. This make insserv refuse to install these init.d scripts and thus the package fail to install when dependency based boot sequencing is enabled. * [http://bugs.debian.org/458582 A bug in insserv] make it report a dependency loop when there really isn't one. It happen when the combined dependency tree for both the start and stop sequence have a loop, but none of them have it individually. * Some init.d scripts have buggy headers, making them fail to install properly in the boot sequence. To see the boot and reboot sequence dependecy graph, use {{{ aptitude install insserv graphviz /usr/share/insserv/check-initd-order -g > boot.dot /usr/share/insserv/check-initd-order -g -k > reboot.dot dotty boot.dot dotty reboot.dot }}} The number of packages with init.d scripts was counted using {{{apt-file update && apt-file search etc/init.d|cut -d: -f1|sort -u|wc -l}}} in Debian/Sid. The number of packages missing LSB headers are fetched from [http://lintian.debian.org/reports/tags.html the lintian reports] for the [http://lintian.debian.org/reports/Tinit.d-script-missing-lsb-section.html init.d-script-missing-lsb-section] tag. The number of base and desktop packages missing headers were counted by creating chroots with debootstrap and tasksel. To enable dependency based boot, the [http://packages.qa.debian.org/i/insserv.html insserv] package can be used. At [http://user.skolelinux.no/~pere/mypapers/200706-bootseq/200706-bootseq.html debconf7] and [http://www.hungry.com/~pere/mypapers/200802-bootsequence/200802-bootsequence.html FOSDEM 2008] ([http://meetings-archive.debian.net/pub/debian-meetings/2008/fosdem/ogg_theora/384x288/Reordering_the_Debian_boot_sequence_for_correctness_and_speed___Petter_Reinholdtsen.ogg video]), Petter Reinholdtsen gave a talk about the dependency based boot system. To enable it, install the insserv package and activate it like this: {{{ aptitude install insserv && dpkg-reconfigure insserv }}} Make sure to use insserv version 1.09.0-6 or higher. To usertag related bugs, send an email to request (at) bugs.debian.org, with content like this: {{{ user initscripts-ng-devel (at) lists.alioth.debian.org usertag 361054 + incorrect-dependency usertag 361358 + missing-dependency thanks }}} == Packages left to fix == Generated using {{{dd-list $(lynx -nolist -dump http://lintian.debian.org/reports/tags/init.d-script-missing-lsb-section.html | grep binary | cut -d" " -f1 | sort)}}} {{{ Daniel Baumann <daniel@debian.org> ipmasq Debian Nagios Maintainer Group <pkg-nagios-devel@lists.alioth.debian.org> nsca sean finney <seanius@debian.org> nsca (U) Matthias Klose <doko@debian.org> buildbot Jaakko Niemi <liiwi@debian.org> sfs Cajus Pollmeier <cajus@debian.org> nsca (U) }}} ---- CategoryDeveloper |
Dependency based boot sequence
It is possible to converting Debian to order the boot sequence using the LSB headers in the init.d scripts. This will get rid of several bugs in the current boot sequence, and make it easier to keep the sequence correct.
The feature [http://lists.debian.org/debian-devel-announce/2008/01/msg00004.html was announced on debian-devel-announce] 2008-01-17. A [http://lists.debian.org/debian-devel-announce/2008/03/msg00011.html status update message] was sent 2008-03-16.
A new [:LSBInitScripts/DependencyBasedBoot/200805-status:status update message] is being worked on.
Advantages
Did you every need to insert a init.d scripts Y before init.d scripts Z and after init.d script X, where both Z and X is started using boot sequence number 20 (as in 20X and 20Z)? Adding your script as 20Y would not cut it, because you need Z to start before X. To do this, in Debian you currently need to talk to the maintainer of packages with scripts Z and X, asking one of them (or both) to move their script into a different number. Dependency based boot sequencing make it possible for each package maintainer to specify the dependencies of its scripts, and leave the number allocation to the dependency resolver.
Example of such problems
Status
This page is created to keep track of the state of this feature, to make it easier to coordinate an effort to implement it for Debian Lenny. It is [http://lists.debian.org/debian-release/2007/06/msg00164.html proposed] as a [http://release.debian.org/lenny-goals.txt release goal] for Lenny.
|
2007-07-03 |
2007-07-22 |
2007-08-08 |
2007-09-06 |
2007-10-24 |
2007-11-14 |
2007-11-29 |
2007-12-22 |
2007-12-30 |
2008-01-06 |
2008-01-14 |
2008-01-26 |
2008-02-03 |
2008-02-08 |
2008-02-20 |
2008-02-23 |
2008-03-07 |
2008-03-09 |
2008-03-13 |
2008-03-19 |
2008-04-16 |
2008-05-01 |
2008-05-18 |
packages with init.d scripts |
843 |
843 |
845 |
849 |
855 |
852 |
851 |
857 |
860 |
863 |
863 |
864 |
863 |
863 |
866 |
866 |
873 |
873 |
873 |
873 |
873 |
873 |
873 |
fraction with LSB headers |
56% |
57% |
58% |
60% |
62% |
63% |
64% |
66% |
67% |
68% |
69% |
70% |
73% |
73% |
76% |
77% |
78% |
79% |
80% |
83% |
98% |
99% |
99% |
packages without LSB headers |
373 |
363 |
353 |
336 |
325 |
319 |
303 |
292 |
287 |
280 |
269 |
258 |
237 |
229 |
212 |
203 |
187 |
181 |
172 |
148 |
16 |
12 |
9 |
base packages without LSB headers |
2 of 40 |
|
|
|
|
1 of 40 (1 of 12 pkgs) |
|
|
|
0 of 38 (0 of 10 pkgs) |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
desktop packages without LSB headers |
6 of 58 |
|
|
|
|
7 of 70 (7 of 39 pkgs) |
|
|
|
4 of 75 (4 of 42 pkgs) |
|
|
|
|
|
|
|
|
|
|
|
|
0 |
A number of [http://bugs.debian.org/cgi-bin/pkgreport.cgi?usertag=initscripts-ng-devel@lists.alioth.debian.org&dist=unstable bug reports] are submitted to request LSB headers in init.d scripts. It is useful to track [http://bugs.debian.org/cgi-bin/pkgreport.cgi?usertag=initscripts-ng-devel@lists.alioth.debian.org&dist=testing the ones open in testing] as well.
Known issues
- It is not possible to migrate between exim and postfix without purging the other package, due to conflicting provides.
- Some scripts provide the same service, and this confuses insserv. Some of the scripts are scripts that have been removed from their package, but not properly removed from disk. This make insserv refuse to install these init.d scripts and thus the package fail to install when dependency based boot sequencing is enabled.
[http://bugs.debian.org/458582 A bug in insserv] make it report a dependency loop when there really isn't one. It happen when the combined dependency tree for both the start and stop sequence have a loop, but none of them have it individually.
- Some init.d scripts have buggy headers, making them fail to install properly in the boot sequence.
To see the boot and reboot sequence dependecy graph, use
aptitude install insserv graphviz /usr/share/insserv/check-initd-order -g > boot.dot /usr/share/insserv/check-initd-order -g -k > reboot.dot dotty boot.dot dotty reboot.dot
The number of packages with init.d scripts was counted using apt-file update && apt-file search etc/init.d|cut -d: -f1|sort -u|wc -l in Debian/Sid. The number of packages missing LSB headers are fetched from [http://lintian.debian.org/reports/tags.html the lintian reports] for the [http://lintian.debian.org/reports/Tinit.d-script-missing-lsb-section.html init.d-script-missing-lsb-section] tag. The number of base and desktop packages missing headers were counted by creating chroots with debootstrap and tasksel.
To enable dependency based boot, the [http://packages.qa.debian.org/i/insserv.html insserv] package can be used. At [http://user.skolelinux.no/~pere/mypapers/200706-bootseq/200706-bootseq.html debconf7] and [http://www.hungry.com/~pere/mypapers/200802-bootsequence/200802-bootsequence.html FOSDEM 2008] ([http://meetings-archive.debian.net/pub/debian-meetings/2008/fosdem/ogg_theora/384x288/Reordering_the_Debian_boot_sequence_for_correctness_and_speed___Petter_Reinholdtsen.ogg video]), Petter Reinholdtsen gave a talk about the dependency based boot system. To enable it, install the insserv package and activate it like this:
aptitude install insserv && dpkg-reconfigure insserv
Make sure to use insserv version 1.09.0-6 or higher.
To usertag related bugs, send an email to request (at) bugs.debian.org, with content like this:
user initscripts-ng-devel (at) lists.alioth.debian.org usertag 361054 + incorrect-dependency usertag 361358 + missing-dependency thanks
Packages left to fix
Generated using dd-list $(lynx -nolist -dump http://lintian.debian.org/reports/tags/init.d-script-missing-lsb-section.html | grep binary | cut -d" " -f1 | sort)
Daniel Baumann <daniel@debian.org> ipmasq Debian Nagios Maintainer Group <pkg-nagios-devel@lists.alioth.debian.org> nsca sean finney <seanius@debian.org> nsca (U) Matthias Klose <doko@debian.org> buildbot Jaakko Niemi <liiwi@debian.org> sfs Cajus Pollmeier <cajus@debian.org> nsca (U)