On Thu, 09 Mar 2017 at 10:37:10 +0000, Holger Levsen wrote:
> On Wed, Mar 08, 2017 at 09:45:32PM -0500, Matthew Gabeler-Lee wrote:
> > This takes it back to using the sysvinit script with systemd.  I don't know
> > if this might cause difficulties with future upgrades, but it at least gets
> > munin running again for me.
> 
> I guess this will work as long as systemd in Debian supports initscripts as
> fallback, however long this may be.

systemd seems likely to support LSB init scripts for quite a long time.
Even if it didn't, you could provide a systemd unit that is exactly
equivalent. systemd's LSB init script support isn't a special case in
the systemd executable, it's just a "generator" program
systemd-sysv-generator(8) that looks for LSB init scripts and writes systemd
units that run those scripts into /run/systemd/generator.late/*.service.

Hand-written systemd services are typically better, even if they just run
the init script in their ExecStart/ExecStop, because they can catch errors
by making more assumptions about how the service in question behaves.
systemd-sysv-generator(8) has to generate extremely generic service files
that accept all sorts of corner cases, because it can't know what your
init script is meant to do. For instance, the generated service
files can't make an assumption about whether your init script should or
shouldn't leave any child processes running when it exits, so it has to
accept either, whereas a hand-written systemd service can require whichever
of those is the correct result and record an error if the other one happens.

> I also think this might break with the next munin upgrade, which will 
> reinstall
> /lib/systemd/system/munin.service

Well, you're the maintainer; if you want munin to not mask the systemd unit
generated from its init script, you don't have to install that symlink.
It seems to have been done deliberately:
https://sources.debian.net/src/munin/2.0.33-1/debian/munin.links/
Do you know why? I couldn't see anything relevant-looking in d/changelog.
I'd normally check the git history, but alioth is down at the moment.

    S

Reply via email to