[libvirt] [PATCH v2 11/19] remote: add systemd socket units for UNIX/TCP sockets
Michal Privoznik
mprivozn at redhat.com
Fri Jul 12 09:40:19 UTC 2019
On 7/11/19 4:07 PM, Daniel P. Berrangé wrote:
> We don't do socket activation of libvirtd, since we need to
> unconditionally start libvirtd in order to perform autostart. This
> doesn't mean we can't have systemd socket units. Some use cases will
> not need libvirt's autostart & are thus free to use activation.
>
> Signed-off-by: Daniel P. Berrangé <berrange at redhat.com>
> ---
> libvirt.spec.in | 24 +++++++++++++++++++-
> src/remote/Makefile.inc.am | 35 +++++++++++++++++++++++++++++
> src/remote/libvirtd-admin.socket.in | 13 +++++++++++
> src/remote/libvirtd-ro.socket.in | 13 +++++++++++
> src/remote/libvirtd-tcp.socket.in | 12 ++++++++++
> src/remote/libvirtd-tls.socket.in | 12 ++++++++++
> src/remote/libvirtd.service.in | 10 ++++-----
> src/remote/libvirtd.socket.in | 11 +++++++++
> 8 files changed, 124 insertions(+), 6 deletions(-)
> create mode 100644 src/remote/libvirtd-admin.socket.in
> create mode 100644 src/remote/libvirtd-ro.socket.in
> create mode 100644 src/remote/libvirtd-tcp.socket.in
> create mode 100644 src/remote/libvirtd-tls.socket.in
> create mode 100644 src/remote/libvirtd.socket.in
>
> diff --git a/libvirt.spec.in b/libvirt.spec.in
> index d54f58f1d4..ec562d5f7a 100644
> --- a/libvirt.spec.in
> +++ b/libvirt.spec.in
> @@ -1342,6 +1342,8 @@ exit 0
>
> %systemd_post virtlockd.socket virtlockd-admin.socket
> %systemd_post virtlogd.socket virtlogd-admin.socket
> +%systemd_post libvirtd.socket libvirtd-ro.socket libvirtd-admin.socket
> +%systemd_post libvirtd-tcp.socket libvirtd-tls.socket
> %systemd_post libvirtd.service
>
> # request daemon restart in posttrans
> @@ -1350,6 +1352,8 @@ touch %{_localstatedir}/lib/rpm-state/libvirt/restart || :
>
> %preun daemon
> %systemd_preun libvirtd.service
> +%systemd_preun libvirtd-tcp.socket libvirtd-tls.socket
> +%systemd_preun libvirtd.socket libvirtd-ro.socket libvirtd-admin.socket
> %systemd_preun virtlogd.socket virtlogd-admin.socket virtlogd.service
> %systemd_preun virtlockd.socket virtlockd-admin.socket virtlockd.service
>
> @@ -1374,7 +1378,20 @@ fi
>
> %posttrans daemon
> if [ -f %{_localstatedir}/lib/rpm-state/libvirt/restart ]; then
> - /bin/systemctl try-restart libvirtd.service >/dev/null 2>&1 || :
> + /bin/systemctl is-active libvirtd.service 1>/dev/null 2>&1
> + # Old libvirtd owns the sockets and will delete them on
> + # shutdown. Can't use a try-restart as libvirtd will simply
> + # own the sockets again when it comes back up. Thus we must
> + # do this particular ordering
> + if test $? == 0 ; then
s/==/=/
> + /bin/systemctl stop libvirtd.service >/dev/null 2>&1 || :
> +
> + /bin/systemctl try-restart libvirtd.socket >/dev/null 2>&1 || :
> + /bin/systemctl try-restart libvirtd-ro.socket >/dev/null 2>&1 || :
> + /bin/systemctl try-restart libvirtd-admin.socket >/dev/null 2>&1 || :
> +
> + /bin/systemctl start libvirtd.service >/dev/null 2>&1 || :
> + fi
> fi
> rm -rf %{_localstatedir}/lib/rpm-state/libvirt || :
Michal
More information about the libvir-list
mailing list