Was: systemctl --system daemon-reload >/dev/null || true if [ -n "$2" ]; then _dh_action=restart else _dh_action=start fi deb-systemd-invoke $_dh_action 'libvirt-guests.service' 'virtlockd-admin.socket' 'virtlockd.service' 'virtlockd.socket' 'virtlogd-admin.socket' 'virtlogd.service' 'virtlogd.socket' >/dev/null || true
/usr/bin/dh_installsystemd R_FLAG => no restart RESTART_AFTER_UPGRADE => restart (default) R_FLAG is only considered in postrm to stop/notstop it RESTART_AFTER_UPGRADE is considered for postinst We'd need to set RESTART_AFTER_UPGRADE=0 as well. That is not (no more?) implied by --no-stop-on-upgrade First I split list in services and sockets and added the extra arg just to those not intended to restart: dh_installsystemd -p libvirt-daemon-system --no-stop-on-upgrade --no-restart-after-upgrade $(LIBVIRT_SYSTEM_SERVICES_NR) New section is: if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then if [ -d /run/systemd/system ]; then systemctl --system daemon-reload >/dev/null || true deb-systemd-invoke start 'virtlockd.service' 'virtlockd.socket' 'virtlogd.service' 'virtlogd.socket' >/dev/null || true fi fi And one would think that this would keep the processes it up and running as-is. This actually worked, but we are somewhat back at the original issue that the restarting the sockets restarts the services (just without sysV this time). Later on come the services which still have "restart" Main PID: 28688 (virtlogd) Main PID: 28687 (virtlockd) + deb-systemd-invoke restart libvirt-guests.service virtlockd-admin.socket virtlockd.socket virtlogd-admin.socket virtlogd.socket ++ grep 'Main PID' ++ systemctl status virtlogd.service virtlockd.service --no-pager --lines 1 Main PID: 29470 (virtlogd) Main PID: 29469 (virtlockd) But there isn't really a reason to restart the sockets at all. And the services already have their systemctl reload virtlogd.service section in postinst for the proper re-exec. So lets just make the sockets --no-stop-on-upgrade + --no-restart-after-upgrade as well. This seems to do the trick to achieve the correct behavior. diff --git a/debian/rules b/debian/rules index 26fc3e7171..63b8a2a316 100755 --- a/debian/rules +++ b/debian/rules @@ -247,7 +247,7 @@ override_dh_installinit: override_dh_installsystemd: dh_installsystemd -p libvirt-daemon-system --restart-after-upgrade libvirtd.service - dh_installsystemd -p libvirt-daemon-system --no-stop-on-upgrade $(LIBVIRT_SYSTEM_SERVICES) + dh_installsystemd -p libvirt-daemon-system --no-stop-on-upgrade --no-restart-after-upgrade $(LIBVIRT_SYSTEM_SERVICES) override_dh_installdocs: dh_installdocs -plibvirt-doc --doc-main-package libvirt-doc I have not yet tried what happens if I let the sysV scripts back in. But for systemd only this seems worth to discuss.