Hi there, On 08/04/2017 12:30 PM, Harald Dunkel wrote: > What is the right way to restart a service from the postinst > script for Stretch and newer?
The same way as before: if it has both an init script and a systemd service, just call invoke-rc.d script restart or invoke-rc.d script restart || : depending on whether you want errors to be fatal or not. You could also take a look at what debhelper generates for you if you use dh_installinit: http://sources.debian.net/src/debhelper/10.2.5/autoscripts/postinst-init/ (#ERROR_HANDLER# is "exit $?" - without the quotes - by default.) > Reason for asking is: opensmtpd died once too often when it got > restarted via invoke-rc.d from a postinst script on my desktop > PC. I just looked at the opensmtpd package: it uses debhelper compat 9, so it defaults to the following behavior on upgrades: - prerm of the old package: stops the service - dpkg unpacks the new binaries - postinst of the new package: starts the service again See https://wiki.debian.org/MaintainerScripts#Upgrading for a detailed graph on the order in which the maintainer scripts are executed in on upgrade. If restarting opensmtpd fails in your case, this is either - a bug in your configuration that leads to opensmtp failing to start again or - a bug in the package (either in how upgrades are handled or in how the package works) But without further details (i.e. what error message was given, both in the APT output and in the system logs) I don't think this can be diagnosed further. I can only tell you that from what I can see the postinst script does the right thing and that if there's a bug in the package, it's not there but in some other place. Regards, Christian