On Thu, Jul 17, 2025 at 11:54:25AM +0100, Rainer Weikusat via Dng wrote:
> Andrew Bower <andrew@???> writes:
> > On Thu, Jul 17, 2025 at 01:02:44AM -0400, Steve Litt wrote:
> >> Rainer Weikusat via Dng said on Wed, 16 Jul 2025 12:05:15 +0100
> >> >Steve Litt <slitt@???> writes:
> >> >> Rainer Weikusat via Dng said on Tue, 08 Jul 2025 16:30:16 +0100
> >> >>
> >> >>>init.d scripts are config file and as such, supposed to be under user
> >> >>>control. This includes that a user may remove them.
> >> >>
> >> >> Or put exit 0 at the very top.
> >> >
> >> >I used to do that in the past but some woman working for the Mainz
> >> >university computing center convince me of the other method. Her
> >> >arguments where:
> >> >
> >> > - this render starting the serice manually via init.d script
> >> > impossible
> >> >
> >> > - such changes are easily forgotten and possibly, cause a lot
> >> > of
> >> > headscratching because of this while the renamed script is
> >> > visible in the filesystem without having to look at its
> >> > content
> >
> > All problems which are solved by using update-rc.d as Debian intends,
> > even though the end user does "own" the conffiles.
>
> update-rc.d is a Debian legacy (due to the switch to systemd) tool which
> was/ is meant to be used by maintainer scripts to isolate them from the
> details of boot configuration of any particular system for manageing a
> boot configuration (same as invoke-rc.d, by the way).
I did some digging after your comment and it seems the update-rc.d
method for manipulating the symlinks is much newer than I thought (2009)
but certainly wasn't created for systemd.
https://bugs.debian.org/67095
* Add interface for disabling system init script start links with
update-rc.d, and enabling them again. Closes: #67095
[update-rc.d]
https://salsa.debian.org/debian/sysvinit/-/commit/09dfdce12760f25e43fc46738015c16afe197c24#9c46da65a0f439031b5e0fb7c4897942064303a3
You are right that update-rc.d was initially for maintscripts but the
prior advice to use a runlevel editor was changed with the addition of
the 'enable' and 'disable' operations:
[update-rc.d.8]
https://salsa.debian.org/debian/sysvinit/-/commit/09dfdce12760f25e43fc46738015c16afe197c24#f680c7d5df9b337e9158e5fbf563640f417be25e
rc.d symlinks are clearly the fundamental and canonical expression of
what should be launched when, with the matter for debate being what
tooling to use to manipulate them. Because the symlink meanings have a
consistent definition, changing these by whatever method, means system
tooling works with you not against you (or vice versa).
I don't know what a new user gains from hacking or renaming init scripts
rather than using tools to manipulate the symlinks.
There is no need to keep the symlinks in order to preserve the package
maintainers intentions about suitable runlevels: this is encoded in the
LSB header and can be restored with:
update-rc.d -f acme remove
update-rc.d acme defaults
So if update-rc.d is Debian legacy, what is the Debian or Devuan
non-legacy method? Surely not hacking or renaming initscripts?