Proposed release goal for Squeeze: Switch to dependency based boot sequencing

Michael Biebl biebl at debian.org
Fri Apr 17 18:04:29 UTC 2009


Henrique de Moraes Holschuh wrote:
> On Fri, 17 Apr 2009, Michael Biebl wrote:
>> Henrique de Moraes Holschuh wrote:
>>> On Fri, 17 Apr 2009, Michael Biebl wrote:
>>>> I think, one missing piece is a proper interface for updating init
>>>> script priorities (if the depencies or the list of runlevel changes) in
>>>> a policy compliant way.
>>> There is no such interface in this case (if we had one, insserv would have
>>> to make it a no-op).  You have to edit the initscript metadata directly
>>> (because it is embedded in comment headers on the initscript itself) to do
>>> such changes, then tell the system to rebuild the initscript dependency
>>> tree.
>> How do you do that exactly while preserving local modifications?
> 
> The local modifications have to be done on the initscript headers, which are
> conffiles since the dawn of time.  The user is warned that by switching to a
> dependency-based initscript system, the old order information is deemed
> irrelevant and thus completely ignored.

If a user decides to remove a symlink, say from rc2.d, we must preserve those
changes, no matter if insserv is used or not. Failing to do so, would be a
policy violation.

> There is also an override directory that can be used to change the
> dependency headers instead of editing the initscript, but we should get rid
> of any need to ship files in there as part of the release goal (local admin
> can place stuff there as he wishes).
> 
> So, you can have local modifications to the *DEPENDENCY* information in an
> override directory.
> 
>> Do you propose maintainer scripts should add special case code for insserv?
> 
> I don't think that would be needed.  During a dpkg run, a single insserv run
> at the end of the dpkg run should be scheduled (if insserv is active) via
> the dpkg triggers and also by any calls to update-rc.d (which will just
> schedule the insserv run, really), as well as changes to /etc/init.d/* and
> the insserv override directories.
> 
> Nobody said anything about getting rid of non-dependency-based boot for
> Squeeze, BTW.  We should aim to make dependency-based (and if at all
> possible, parallel execution) perfect, and the default... but not the only
> option, at least not yet.  Maybe for squeeze+1 or squeeze+2.

Correct. Here are some real world examples:
Say you have a service A, which starts in 2 3 4 5 (priority 20), and stops in 0
6 (priority 20). the lsb header lists dbus as dependency.
a) teardown: you want to get rid of the stop symlinks in 0 and 6, as sendsigs is
sufficient for this service
b) Your service was changed to require hal (which starts at 24 with static
priorities). You now have to update the lsb header and change the static
priority to say 25.

Please show, how you can do the above for insserv and static priorities while
preserving local modifications.

Michael



-- 
Why is it that all of the instruments seeking intelligent life in the
universe are pointed away from Earth?

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 260 bytes
Desc: OpenPGP digital signature
URL: <http://lists.alioth.debian.org/pipermail/initscripts-ng-devel/attachments/20090417/2ed7ef55/attachment.pgp>


More information about the initscripts-ng-devel mailing list