mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-03 11:35:19 +00:00
spec: clean up libvirtd and virtlockd service mgmt
- systemctl and the %systemd_* RPM macros can take multiple unit names in the one invocation. Make use of this to avoid repeated systemd daemon reloads. - virtlockd was only properly enabled and disabled when using systemd, but when systemd RPM macros were not available (e.g. on Fedora < 18). Make sure it's enabled when systemd RPM macros are present, or when using initscripts. - Always use "reload" on virtlockd, not "condrestart". This allows it to cleanly re-execute itself without losing running state. Ignore any error should the reload fail. - Move the reloading of virtlockd and libvirtd via their initscripts into the daemon package's %postun scriptlet. These services must be restarted after all of the libvirt-daemon-driver-* packages have been upgraded during the same RPM transaction. - Add a %triggerpostun executed only when upgrading an older libvirt-daemon. As an older package would only reload libvirtd during %post, and the newer package would only reload libvirtd during %postun, such an upgrade would not reload libvirtd at all without the trigger. Signed-off-by: Michael Chapman <mike@very.puzzling.org>
This commit is contained in:
parent
f1b1752537
commit
81764660ae
@ -1591,12 +1591,11 @@ done
|
||||
|
||||
%if %{with_systemd}
|
||||
%if %{with_systemd_macros}
|
||||
%systemd_post libvirtd.service
|
||||
%systemd_post virtlockd.socket libvirtd.service
|
||||
%else
|
||||
if [ $1 -eq 1 ] ; then
|
||||
# Initial installation
|
||||
/bin/systemctl enable virtlockd.socket >/dev/null 2>&1 || :
|
||||
/bin/systemctl enable libvirtd.service >/dev/null 2>&1 || :
|
||||
/bin/systemctl enable virtlockd.socket libvirtd.service >/dev/null 2>&1 || :
|
||||
fi
|
||||
%endif
|
||||
%else
|
||||
@ -1611,46 +1610,50 @@ fi
|
||||
%endif
|
||||
|
||||
/sbin/chkconfig --add libvirtd
|
||||
if [ "$1" -ge "1" ]; then
|
||||
/sbin/service libvirtd condrestart > /dev/null 2>&1
|
||||
fi
|
||||
/sbin/chkconfig --add virtlockd
|
||||
%endif
|
||||
|
||||
%preun daemon
|
||||
%if %{with_systemd}
|
||||
%if %{with_systemd_macros}
|
||||
%systemd_preun libvirtd.service
|
||||
%systemd_preun libvirtd.service virtlockd.socket virtlockd.service
|
||||
%else
|
||||
if [ $1 -eq 0 ] ; then
|
||||
# Package removal, not upgrade
|
||||
/bin/systemctl --no-reload disable virtlockd.socket > /dev/null 2>&1 || :
|
||||
/bin/systemctl --no-reload disable libvirtd.service > /dev/null 2>&1 || :
|
||||
/bin/systemctl stop libvirtd.service > /dev/null 2>&1 || :
|
||||
/bin/systemctl stop virtlockd.service > /dev/null 2>&1 || :
|
||||
/bin/systemctl --no-reload disable libvirtd.service virtlockd.socket virtlockd.service > /dev/null 2>&1 || :
|
||||
/bin/systemctl stop libvirtd.service virtlockd.socket virtlockd.service > /dev/null 2>&1 || :
|
||||
fi
|
||||
%endif
|
||||
%else
|
||||
if [ $1 = 0 ]; then
|
||||
/sbin/service libvirtd stop 1>/dev/null 2>&1
|
||||
/sbin/chkconfig --del libvirtd
|
||||
/sbin/service virtlockd stop 1>/dev/null 2>&1
|
||||
/sbin/chkconfig --del virtlockd
|
||||
fi
|
||||
%endif
|
||||
|
||||
%postun daemon
|
||||
%if %{with_systemd}
|
||||
%if %{with_systemd_macros}
|
||||
%systemd_postun_with_restart libvirtd.service
|
||||
%else
|
||||
/bin/systemctl daemon-reload >/dev/null 2>&1 || :
|
||||
if [ $1 -ge 1 ] ; then
|
||||
# Package upgrade, not uninstall
|
||||
/bin/systemctl status virtlockd.service >/dev/null 2>&1
|
||||
if [ $? = 1 ] ; then
|
||||
/bin/systemctl kill --signal=USR1 virtlockd.service >/dev/null 2>&1 || :
|
||||
fi
|
||||
/bin/systemctl reload-or-try-restart virtlockd.service >/dev/null 2>&1 || :
|
||||
/bin/systemctl try-restart libvirtd.service >/dev/null 2>&1 || :
|
||||
fi
|
||||
%endif
|
||||
%else
|
||||
if [ $1 -ge 1 ]; then
|
||||
/sbin/service virtlockd reload > /dev/null 2>&1 || :
|
||||
/sbin/service libvirtd condrestart > /dev/null 2>&1
|
||||
fi
|
||||
%endif
|
||||
|
||||
%if %{with_systemd}
|
||||
%else
|
||||
%triggerpostun daemon -- libvirt-daemon < 1.2.1
|
||||
if [ "$1" -ge "1" ]; then
|
||||
/sbin/service virtlockd reload > /dev/null 2>&1 || :
|
||||
/sbin/service libvirtd condrestart > /dev/null 2>&1
|
||||
fi
|
||||
%endif
|
||||
|
||||
%if %{with_network}
|
||||
|
Loading…
Reference in New Issue
Block a user