Subject: Re: bug#723: init-system-helpers: update-rc.d calls systemctl on a SysVinit system, creating a recursion

From: [email-masked] (Wolfgang Wegner)
Date: Mon, 14 Nov 2022 11:51:17 +0100

On Mon, Nov 14, 2022 at 10:24:39AM +0000, Mark Hindley wrote:
[...]
> I notice you have dummy-systemd-dev installed. You really don't want that on a
> production system. If is a hack for building sources that Build-Dep: systemd. It
> doesn't provide any systemd functionality.
> 
> If you remove it does it make any difference?

Thanks - I removed it now, but that does not make any difference.

> > > > Calling update-rc.d from the systemctl "abstraction" (surrogate?) seems
> > > > to be correct, but I would have expected update-rc.d to detect the system's
> > > > init system and - as I am using sysVinit on Devuan - just modify the links.
> > > > 
> > > > update-rc.d behaviour can also be reproduced when calling it for an already
> > > > installed service.
> > > 
> > > Could you give a specific example here. I can't reproduce it.
> > 
> > root@<host>:~# update-rc.d rsyslog enable
> > update-rc.d rsyslog enable
> > update-rc.d rsyslog enable
> > update-rc.d rsyslog enable
> 
> Hmmm, I get completely different behaviour with that command:-
> 
> mark@apollo:~% sudo update-rc.d enable rsyslog

Is the switched basename/command pair intended here?

> usage: update-rc.d [-f] <basename> remove
>        update-rc.d [-f] <basename> defaults
>        update-rc.d [-f] <basename> defaults-disabled
>        update-rc.d <basename> disable|enable [S|2|3|4|5]
>                 -f: force
> 
> The disable|enable API is not stable and might change in the future.
> 
> What systemd-requiring package are you trying to install? What other changes
> have you made?

The package I try to install is *cough* "cybereason-sensor", which is now
required to install from our IT department. Their post-install script
relies on either upstart or systemd being present. As in consequence, no
LSB init script is provided with the package, I created a basic one and
also added the standard links in /etc/rc?.d/.

I am not aware of other changes I did to the system - however, the
installation is originating from a Devuan 1.0 install and has only been
updated to the current state, which has been quite cumbersome with respect
to some in-between incompatibilities, especially the usual NVIDIA mess
but also some things concerning qemu/KVM and wine.
(This is to say: I do not remember any changes in the area of the init
system but there has been some fiddling around trying to get some updates
installed.)

As another test, I just tried to remove systemctl-service-shim, and
immediately the weird behaviour of update-rc.d is gone:

root@<host>:~# dpkg -r systemctl-service-shim
(Reading database ... 836967 files and directories currently installed.)
Removing systemctl-service-shim (0.0.4-1) ...
Processing triggers for man-db (2.11.0-1+b1) ...
root@<host>:~# update-rc.d rsyslog enable
root@<host>:~#

So to me it really looks like an unwanted interaction just between
update-rc.d and systemctl-service-shim.

> Mark

Best regards
Wolfgang