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

From: B Stack <[email-masked]>
Date: Mon, 14 Nov 2022 07:50:26 -0500

Hi,

The systemctl-service-shim main script /usr/bin/systemctl also has a
symlink at /bin/systemctl. If the script is called from /bin/systemctl
then it will remove this symlink during operations to avoid the
recursive calls like you see happening here. You can check the
relevant logs at /var/log/systemctl.log, and please share them here.

The systemctl service shim script has a known problem particularly on
the "enable" action [0] that I thought was fixed. The logs, if you can
share them, might help make an improvement such as the script getting
called in a particular way where it also needs to remove the symlink
to prevent infinite recursion.

B. Stack
[0]: https://bugs.devuan.org/cgi/bugreport.cgi?bug=688

On Mon, Nov 14, 2022 at 5:53 AM Mark Hindley <[email-masked]> wrote:
>
> Antony,
>
> On Mon, Nov 14, 2022 at 11:31:39AM +0100, Where all about bugs in Devuan packages is reported wrote:
> > > Hmmm, I get completely different behaviour with that command:-
> > >
> > > mark@apollo:~% sudo update-rc.d enable rsyslog
> > > 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
> >
> > Um, "update-rc.d rsyslog enable" != "update-rc.d enable rsyslog".
>
> Thanks for pointing out my obvious (but not to me!) mistake.
>
> So I can now reproduce this, but only if systemctl-service-shim is installed. If
> it is removed, update-rc.d behaves as expected.
>
> [Adding bgstack15]
>
> Is this an issue in the way systemctl-service-shim behaves? I don't see it with
> systemctl on a Debian sysvinit system.
>
> Thanks.
>
> Mark