>>>>> "Ian" == Ian Jackson <ijack...@chiark.greenend.org.uk> writes:
Ian> * If the maintainer has no particular reason to diverge the Ian> right answer is usually to fail the postinst with init systems Ian> that do not provide service supervision; but to not fail the Ian> postinst with ones that do. (I think from earlier messages Ian> that this is how the default implementations already work.) So, it's not really the case that this is the default for init systems today, and that actually has some important historical significance and implications for perceived user-facing changes. It's absolutely been the case that if an init script (init.d lsb script) fails, the default behavior was to fail the postinst. However, start-stop-daemon did not detect a lot of failures, especially after fork. So, there are all sorts of things that caused daemons to fail to start that used to not cause postinst failures. I don't know what the default is today, but certainly for Jessie and for a lot of the stretch cycle, dh_installinit would fail the postinst whenever systemctl failed to start or restart a service. Now, depending on how you wrote your service units, you might get the same behavior as with sysvinit. But you probably didn't do that. So, suddenly, a whole bunch more conditions started showing up as things that caused postinst to fail. If somewhere in stretch and with the migration from dh_installinit for service units fto dh_systemd_*, we managed to change the default, then we're probably reasonably close to what happened in the pre-systemd days. And that was reasonably OK.