mirror of
https://github.com/libvirt/libvirt.git
synced 2026-10-02 12:20:06 -05:00
daemon: use socket activation with systemd
Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
This commit is contained in:
1 parent
1b807f92db
commit
1e9808d3a1
6 files changed
+49
-12
No files matched your search
@@ -60,6 +60,7 @@
|
|||||||
/daemon/libvirtd.pod
|
/daemon/libvirtd.pod
|
||||||
/daemon/libvirtd.policy
|
/daemon/libvirtd.policy
|
||||||
/daemon/libvirtd.service
|
/daemon/libvirtd.service
|
||||||
|
/daemon/libvirtd.socket
|
||||||
/daemon/test_libvirtd.aug
|
/daemon/test_libvirtd.aug
|
||||||
/docs/aclperms.htmlinc
|
/docs/aclperms.htmlinc
|
||||||
/docs/apibuild.py.stamp
|
/docs/apibuild.py.stamp
|
||||||
|
|||||||
+12
-2
@@ -55,6 +55,7 @@ EXTRA_DIST = \
|
|||||||
libvirtd.policy.in \
|
libvirtd.policy.in \
|
||||||
libvirtd.sasl \
|
libvirtd.sasl \
|
||||||
libvirtd.service.in \
|
libvirtd.service.in \
|
||||||
|
libvirtd.socket.in \
|
||||||
libvirtd.sysconf \
|
libvirtd.sysconf \
|
||||||
libvirtd.sysctl \
|
libvirtd.sysctl \
|
||||||
libvirtd.aug \
|
libvirtd.aug \
|
||||||
@@ -388,15 +389,18 @@ endif ! LIBVIRT_INIT_SCRIPT_UPSTART
|
|||||||
if LIBVIRT_INIT_SCRIPT_SYSTEMD
|
if LIBVIRT_INIT_SCRIPT_SYSTEMD
|
||||||
|
|
||||||
SYSTEMD_UNIT_DIR = $(prefix)/lib/systemd/system
|
SYSTEMD_UNIT_DIR = $(prefix)/lib/systemd/system
|
||||||
BUILT_SOURCES += libvirtd.service
|
BUILT_SOURCES += libvirtd.service libvirtd.socket
|
||||||
|
|
||||||
install-init-systemd: install-sysconfig libvirtd.service
|
install-init-systemd: install-sysconfig libvirtd.service libvirtd.socket
|
||||||
$(MKDIR_P) $(DESTDIR)$(SYSTEMD_UNIT_DIR)
|
$(MKDIR_P) $(DESTDIR)$(SYSTEMD_UNIT_DIR)
|
||||||
$(INSTALL_DATA) libvirtd.service \
|
$(INSTALL_DATA) libvirtd.service \
|
||||||
$(DESTDIR)$(SYSTEMD_UNIT_DIR)/libvirtd.service
|
$(DESTDIR)$(SYSTEMD_UNIT_DIR)/libvirtd.service
|
||||||
|
$(INSTALL_DATA) libvirtd.socket \
|
||||||
|
$(DESTDIR)$(SYSTEMD_UNIT_DIR)/libvirtd.socket
|
||||||
|
|
||||||
uninstall-init-systemd: uninstall-sysconfig
|
uninstall-init-systemd: uninstall-sysconfig
|
||||||
rm -f $(DESTDIR)$(SYSTEMD_UNIT_DIR)/libvirtd.service
|
rm -f $(DESTDIR)$(SYSTEMD_UNIT_DIR)/libvirtd.service
|
||||||
|
rm -f $(DESTDIR)$(SYSTEMD_UNIT_DIR)/libvirtd.socket
|
||||||
rmdir $(DESTDIR)$(SYSTEMD_UNIT_DIR) || :
|
rmdir $(DESTDIR)$(SYSTEMD_UNIT_DIR) || :
|
||||||
else ! LIBVIRT_INIT_SCRIPT_SYSTEMD
|
else ! LIBVIRT_INIT_SCRIPT_SYSTEMD
|
||||||
install-init-systemd:
|
install-init-systemd:
|
||||||
@@ -420,6 +424,12 @@ libvirtd.service: libvirtd.service.in $(top_builddir)/config.status
|
|||||||
< $< > $@-t && \
|
< $< > $@-t && \
|
||||||
mv $@-t $@
|
mv $@-t $@
|
||||||
|
|
||||||
|
libvirtd.socket: libvirtd.socket.in $(top_builddir)/config.status
|
||||||
|
$(AM_V_GEN)sed \
|
||||||
|
-e 's|[@]runstatedir[@]|$(runstatedir)|g' \
|
||||||
|
< $< > $@-t && \
|
||||||
|
mv $@-t $@
|
||||||
|
|
||||||
|
|
||||||
check-local: check-augeas
|
check-local: check-augeas
|
||||||
|
|
||||||
|
|||||||
@@ -77,6 +77,11 @@
|
|||||||
# UNIX socket access controls
|
# UNIX socket access controls
|
||||||
#
|
#
|
||||||
|
|
||||||
|
# Beware that if you are changing *any* of these options, and you use
|
||||||
|
# socket activation with systemd, you need to adjust the settings in
|
||||||
|
# the libvirtd.socket file as well since it could impose a security
|
||||||
|
# risk if you rely on file permission checking only.
|
||||||
|
|
||||||
# Set the UNIX domain socket group ownership. This can be used to
|
# Set the UNIX domain socket group ownership. This can be used to
|
||||||
# allow a 'trusted' set of users access to management capabilities
|
# allow a 'trusted' set of users access to management capabilities
|
||||||
# without becoming root.
|
# without becoming root.
|
||||||
|
|||||||
@@ -1,8 +1,3 @@
|
|||||||
# NB we don't use socket activation. When libvirtd starts it will
|
|
||||||
# spawn any virtual machines registered for autostart. We want this
|
|
||||||
# to occur on every boot, regardless of whether any client connects
|
|
||||||
# to a socket. Thus socket activation doesn't have any benefit
|
|
||||||
|
|
||||||
[Unit]
|
[Unit]
|
||||||
Description=Virtualization daemon
|
Description=Virtualization daemon
|
||||||
Before=libvirt-guests.service
|
Before=libvirt-guests.service
|
||||||
|
|||||||
@@ -0,0 +1,11 @@
|
|||||||
|
[Socket]
|
||||||
|
ListenStream=@runstatedir@/libvirt/libvirt-sock
|
||||||
|
ListenStream=@runstatedir@/libvirt/libvirt-sock-ro
|
||||||
|
|
||||||
|
; The following settings must match libvirtd.conf file in order to
|
||||||
|
; work as expected because libvirtd can't change them later.
|
||||||
|
; SocketMode=0777 is safe only if authentication on the socket is set
|
||||||
|
; up. For further information, please see the libvirtd.conf file.
|
||||||
|
SocketMode=0777
|
||||||
|
SocketUser=root
|
||||||
|
SocketGroup=root
|
||||||
+20
-5
@@ -1671,11 +1671,13 @@ done
|
|||||||
|
|
||||||
%if %{with_systemd}
|
%if %{with_systemd}
|
||||||
%if %{with_systemd_macros}
|
%if %{with_systemd_macros}
|
||||||
%systemd_post virtlockd.socket libvirtd.service
|
%systemd_post virtlockd.socket libvirtd.service libvirtd.socket
|
||||||
%else
|
%else
|
||||||
if [ $1 -eq 1 ] ; then
|
if [ $1 -eq 1 ] ; then
|
||||||
# Initial installation
|
# Initial installation
|
||||||
/bin/systemctl enable virtlockd.socket libvirtd.service >/dev/null 2>&1 || :
|
/bin/systemctl enable \
|
||||||
|
virtlockd.socket \
|
||||||
|
libvirtd.service >/dev/null 2>&1 || :
|
||||||
fi
|
fi
|
||||||
%endif
|
%endif
|
||||||
%else
|
%else
|
||||||
@@ -1696,12 +1698,24 @@ fi
|
|||||||
%preun daemon
|
%preun daemon
|
||||||
%if %{with_systemd}
|
%if %{with_systemd}
|
||||||
%if %{with_systemd_macros}
|
%if %{with_systemd_macros}
|
||||||
%systemd_preun libvirtd.service virtlockd.socket virtlockd.service
|
%systemd_preun \
|
||||||
|
libvirtd.socket \
|
||||||
|
libvirtd.service \
|
||||||
|
virtlockd.socket \
|
||||||
|
virtlockd.service
|
||||||
%else
|
%else
|
||||||
if [ $1 -eq 0 ] ; then
|
if [ $1 -eq 0 ] ; then
|
||||||
# Package removal, not upgrade
|
# Package removal, not upgrade
|
||||||
/bin/systemctl --no-reload disable libvirtd.service virtlockd.socket virtlockd.service > /dev/null 2>&1 || :
|
/bin/systemctl --no-reload disable \
|
||||||
/bin/systemctl stop libvirtd.service virtlockd.socket virtlockd.service > /dev/null 2>&1 || :
|
libvirtd.socket \
|
||||||
|
libvirtd.service \
|
||||||
|
virtlockd.socket \
|
||||||
|
virtlockd.service > /dev/null 2>&1 || :
|
||||||
|
/bin/systemctl stop \
|
||||||
|
libvirtd.socket \
|
||||||
|
libvirtd.service \
|
||||||
|
virtlockd.socket \
|
||||||
|
virtlockd.service > /dev/null 2>&1 || :
|
||||||
fi
|
fi
|
||||||
%endif
|
%endif
|
||||||
%else
|
%else
|
||||||
@@ -1858,6 +1872,7 @@ exit 0
|
|||||||
|
|
||||||
%if %{with_systemd}
|
%if %{with_systemd}
|
||||||
%{_unitdir}/libvirtd.service
|
%{_unitdir}/libvirtd.service
|
||||||
|
%{_unitdir}/libvirtd.socket
|
||||||
%{_unitdir}/virtlockd.service
|
%{_unitdir}/virtlockd.service
|
||||||
%{_unitdir}/virtlockd.socket
|
%{_unitdir}/virtlockd.socket
|
||||||
%else
|
%else
|
||||||
|
|||||||
Reference in new issue
Block a user