Bug#975591: insserv/update-rc.d coordination missing (was Re: Canonical method to locally disable an init script?)

Lorenzo plorenzo at disroot.org
Mon Dec 14 03:49:32 GMT 2020

On Sun, 13 Dec 2020 07:17:15 +0100 (CET)
Thorsten Glaser <t.glaser at tarent.de> wrote:

> >     root at angst:/etc# apt-get install --reinstall bind9
> […]
> > It warned that they were different from the LSB headers in the init
> > script.  Because they were different.  And that could be any of the
> > possible differences.  But it did not reset them.
> > 
> >     root at angst:/etc# find /etc/rc?.d -name '*bind9'
> >     /etc/rc0.d/K04bind9
> >     /etc/rc1.d/K04bind9
> >     /etc/rc2.d/K04bind9
> >     /etc/rc3.d/K04bind9
> >     /etc/rc4.d/K04bind9

> >     root at angst:/etc# find /etc/rc?.d -name '*bind9'
> >     /etc/rc0.d/K04bind9
> >     /etc/rc1.d/K04bind9
> >     /etc/rc2.d/S03bind9
> >     /etc/rc3.d/S03bind9
> >     /etc/rc4.d/S03bind9
> >     /etc/rc5.d/S03bind9
> >     /etc/rc6.d/K04bind9
> Yes, and that MUST NOT happen.

That is an expected behavior 

> > Removing the S* links instead of disabling them with a K* link.  But
> > leaving the K* links so it is an installed configuration.  Then
> If the local administrator actively disables an init script, e.g. by
> update-rc.d remove, it MUST NOT be re-added later. (This MIGHT require
> insserv and update-rc.d to coordinate on “manually removed” state, but
> this state MUST NOT be the presence of ANY symlinks for that script.)

with update-rc.d remove you are not disabling the service, you are
purging it while it's still installed.
The only way supported in update-rc.d to disable a service is
update-rc.d disable

> Rationale:
> Disabling an init script is *not* the same as leaving a K link…
> because a K link will attempt to stop the service if manually started.
> This MUST NOT happen.

This is interesting: could you please write the exact sequence that
cause a manually started service to be stopped when there is a K
link in the current runlevel?
(if you already have please post again so that I'm sure)
You are upgrading the package or you are switching runlevels?

> Considering raising severity on this as disabling with update-rc.d
> remove does not work and disabling with update-rc.d disable wrongly
> leaves any K links around which causes unrelated software, that is, a
> manually started service, to be broken, that is, stopped.
> I just had this happen, so it isn’t an academic mind exercise.
> bye,
> //mirabilos

I suspect what you want is a new feature in update-rc.d, but it depends
on your answer to my question above.


More information about the Debian-init-diversity mailing list