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.
Lorenzo
More information about the Debian-init-diversity
mailing list