sysconfig files are owned by the admin of the host. They have the
liberty to put anything they want into these files. This makes it
difficult to provide different built-in defaults.
Remove the sysconfig file and place the current desired default into
the service file.
Local customizations can now go either into /etc/sysconfig/name
or /etc/systemd/system/name.service.d/my-knobs.conf
I've spent a fair bit of time testing package upgrade scenarios with this patch.
The only "interesting" thing I noticed was a small behavior change wrt adding a
new default.
E.g. consider adding a new default and the existing installation includes a
/etc/sysconfig/name file unmodified by the local admin that also contains an
uncommented entry. Before this patch, the new default would be placed in
/etc/sysconfig/name and when upgrading the package, /etc/sysconfig/name would be
replaced and the new default would take affect on daemon restart. After this
patch the new default would be placed in the service file, but the existing
/etc/sysconfig/name would override any Environment= in the service file and the
new default would not be in affect after daemon restart.
I'd tend to agree with the argument that packagers should not be placing service
defaults in a file owned by the local admin and don't think this small behavior
change should block consideration of this improvement.
Regards,
Jim
Attempt to handle upgrades in libvirt.spec.
Dirty files which are marked as %config will be renamed to file.rpmsave.
To restore them automatically, move stale .rpmsave files away, and
catch any new rpmsave files in %posttrans.
Signed-off-by: Olaf Hering <olaf(a)aepfle.de>
---
docs/daemons.rst | 20 ++++++++
docs/remote.html.in | 6 +--
libvirt.spec.in | 67 +++++++++++++++++++------
src/ch/meson.build | 5 --
src/ch/virtchd.service.in | 1 +
src/ch/virtchd.sysconf | 3 --
src/interface/meson.build | 5 --
src/interface/virtinterfaced.service.in | 1 +
src/interface/virtinterfaced.sysconf | 3 --
src/libxl/meson.build | 5 --
src/libxl/virtxend.service.in | 1 +
src/libxl/virtxend.sysconf | 3 --
src/locking/meson.build | 5 --
src/locking/virtlockd.service.in | 1 +
src/locking/virtlockd.sysconf | 3 --
src/logging/meson.build | 5 --
src/logging/virtlogd.sysconf | 3 --
src/lxc/meson.build | 5 --
src/lxc/virtlxcd.service.in | 1 +
src/lxc/virtlxcd.sysconf | 3 --
src/meson.build | 16 ------
src/network/meson.build | 5 --
src/network/virtnetworkd.service.in | 1 +
src/network/virtnetworkd.sysconf | 3 --
src/node_device/meson.build | 5 --
src/node_device/virtnodedevd.service.in | 1 +
src/node_device/virtnodedevd.sysconf | 3 --
src/nwfilter/meson.build | 5 --
src/nwfilter/virtnwfilterd.service.in | 1 +
src/nwfilter/virtnwfilterd.sysconf | 3 --
src/qemu/meson.build | 5 --
src/qemu/virtqemud.service.in | 7 +++
src/qemu/virtqemud.sysconf | 12 -----
src/remote/libvirtd.service.in | 7 +++
src/remote/libvirtd.sysconf | 21 --------
src/remote/meson.build | 10 ----
src/remote/virtproxyd.service.in | 1 +
src/remote/virtproxyd.sysconf | 3 --
src/secret/meson.build | 5 --
src/secret/virtsecretd.service.in | 1 +
src/secret/virtsecretd.sysconf | 3 --
src/storage/meson.build | 5 --
src/storage/virtstoraged.service.in | 1 +
src/storage/virtstoraged.sysconf | 3 --
src/vbox/meson.build | 5 --
src/vbox/virtvboxd.service.in | 1 +
src/vbox/virtvboxd.sysconf | 3 --
src/vz/meson.build | 5 --
src/vz/virtvzd.service.in | 1 +
src/vz/virtvzd.sysconf | 3 --
tools/libvirt-guests.sh.in | 40 +++++++++++++++
tools/libvirt-guests.sysconf | 50 ------------------
tools/meson.build | 6 ---
53 files changed, 142 insertions(+), 245 deletions(-)
delete mode 100644 src/ch/virtchd.sysconf
delete mode 100644 src/interface/virtinterfaced.sysconf
delete mode 100644 src/libxl/virtxend.sysconf
delete mode 100644 src/locking/virtlockd.sysconf
delete mode 100644 src/logging/virtlogd.sysconf
delete mode 100644 src/lxc/virtlxcd.sysconf
delete mode 100644 src/network/virtnetworkd.sysconf
delete mode 100644 src/node_device/virtnodedevd.sysconf
delete mode 100644 src/nwfilter/virtnwfilterd.sysconf
delete mode 100644 src/qemu/virtqemud.sysconf
delete mode 100644 src/remote/libvirtd.sysconf
delete mode 100644 src/remote/virtproxyd.sysconf
delete mode 100644 src/secret/virtsecretd.sysconf
delete mode 100644 src/storage/virtstoraged.sysconf
delete mode 100644 src/vbox/virtvboxd.sysconf
delete mode 100644 src/vz/virtvzd.sysconf
delete mode 100644 tools/libvirt-guests.sysconf
diff --git a/docs/daemons.rst b/docs/daemons.rst
index 8a05ee77a7..1b6396d2af 100644
--- a/docs/daemons.rst
+++ b/docs/daemons.rst
@@ -686,3 +686,23 @@ socket unit names into the service. When using these old versions,
the
``unix_sock_dir`` setting in ``virtlockd.conf`` must be changed in
lock-step with the equivalent setting in the unit files to ensure that
``virtlockd`` can identify the sockets.
+
+Changing command line options for daemons
+=========================================
+
+Two ways exist to override the defaults in the provided service files:
+Either a systemd "drop-in" configuration file, or a
``/etc/sysconfig/$daemon``
+file must be created. For example, changing the command line option
+for a debug session of ``libvirtd``, create a file
+``/etc/systemd/system/libvirtd.service.d/my.conf`` with the following content:
+
+ ::
+
+ [Unit]
+ Description=Virtualization daemon, with override from my.conf
+ [Service]
+ Environment=G_DEBUG=fatal-warnings
+ Environment=LIBVIRTD_ARGS="--listen --verbose"
+
+After changes to systemd "drop-in" configuration files it is required to run
+``systemctl daemon-reload``.
diff --git a/docs/remote.html.in b/docs/remote.html.in
index efdb2b3253..47fb2d4df3 100644
--- a/docs/remote.html.in
+++ b/docs/remote.html.in
@@ -138,9 +138,9 @@ Blank lines and comments beginning with <code>#</code>
are ignored.
<td> 1 (on) </td>
<td>
Listen for secure TLS connections on the public TCP/IP port.
- Note: it is also necessary to start the server in listening mode by
- running it with --listen or editing /etc/sysconfig/libvirtd by uncommenting the
LIBVIRTD_ARGS="--listen" line
- to cause the server to come up in listening mode whenever it is started.
+ Note: it is also necessary to start the server in listening mode
+ by running it with --listen or adding a LIBVIRTD_ARGS="--listen"
+ line to /etc/sysconfig/libvirtd.
</td>
</tr>
<tr>
diff --git a/libvirt.spec.in b/libvirt.spec.in
index 66eff7c7e8..ecb07b8541 100644
--- a/libvirt.spec.in
+++ b/libvirt.spec.in
@@ -206,6 +206,18 @@
%define tls_priority "@LIBVIRT,SYSTEM"
+%define libvirt_sc_pre() \
+ for sc in %{?*} ; do \
+ test -f "%{_sysconfdir}/sysconfig/${sc}.rpmsave" || continue ; \
+ mv -v "%{_sysconfdir}/sysconfig/${sc}.rpmsave"
"%{_sysconfdir}/sysconfig/${sc}.rpmsave.old" ; \
+ done \
+ %{nil}
+%define libvirt_sc_posttrans() \
+ for sc in %{?*} ; do \
+ test -f "%{_sysconfdir}/sysconfig/${sc}.rpmsave" || continue ; \
+ mv -v "%{_sysconfdir}/sysconfig/${sc}.rpmsave"
"%{_sysconfdir}/sysconfig/${sc}" ; \
+ done \
+ %{nil}
Summary: Library providing a simple virtualization API
Name: libvirt
@@ -1288,6 +1300,7 @@ fi \
%define libvirt_daemon_systemd_preun_inet() %systemd_preun %1.service %1-ro.socket
%1-admin.socket %1-tls.socket %1-tcp.socket %1.socket
%pre daemon
+%libvirt_sc_pre libvirtd virtproxyd virtlogd virtlockd libvirt-guests
# 'libvirt' group is just to allow password-less polkit access to
# libvirtd. The uid number is irrelevant, so we use dynamic allocation
# described at the above link.
@@ -1336,6 +1349,7 @@ if [ $1 -ge 1 ] ; then
fi
%posttrans daemon
+%libvirt_sc_posttrans libvirtd virtproxyd virtlogd virtlockd libvirt-guests
if test %libvirt_daemon_needs_restart libvirtd
then
# See if user has previously modified their install to
@@ -1465,6 +1479,7 @@ fi
%if %{with_qemu}
%pre daemon-driver-qemu
+%libvirt_sc_pre virtqemud
# We want soft static allocation of well-known ids, as disk images
# are commonly shared across NFS mounts by id rather than name; see
#
https://fedoraproject.org/wiki/Packaging:UsersAndGroups
@@ -1489,6 +1504,7 @@ exit 0
%libvirt_daemon_systemd_preun virtqemud
%posttrans daemon-driver-qemu
+%libvirt_sc_posttrans virtqemud
%libvirt_daemon_perform_restart virtqemud
%endif
@@ -1636,16 +1652,11 @@ exit 0
%{_unitdir}/virtlockd.socket
%{_unitdir}/virtlockd-admin.socket
%{_unitdir}/libvirt-guests.service
-%config(noreplace) %{_sysconfdir}/sysconfig/libvirtd
-%config(noreplace) %{_sysconfdir}/sysconfig/virtproxyd
-%config(noreplace) %{_sysconfdir}/sysconfig/virtlogd
-%config(noreplace) %{_sysconfdir}/sysconfig/virtlockd
%config(noreplace) %{_sysconfdir}/libvirt/libvirtd.conf
%config(noreplace) %{_sysconfdir}/libvirt/virtproxyd.conf
%config(noreplace) %{_sysconfdir}/libvirt/virtlogd.conf
%config(noreplace) %{_sysconfdir}/libvirt/virtlockd.conf
%config(noreplace) %{_sysconfdir}/sasl2/libvirt.conf
-%config(noreplace) %{_sysconfdir}/sysconfig/libvirt-guests
%config(noreplace) %{_prefix}/lib/sysctl.d/60-libvirtd.conf
%config(noreplace) %{_sysconfdir}/logrotate.d/libvirtd
@@ -1716,8 +1727,11 @@ exit 0
%{_datadir}/libvirt/nwfilter/*.xml
%ghost %{_sysconfdir}/libvirt/nwfilter/*.xml
+%pre daemon-driver-interface
+%libvirt_sc_pre virtinterfaced
+%posttrans daemon-driver-interface
+%libvirt_sc_posttrans virtinterfaced
%files daemon-driver-interface
-%config(noreplace) %{_sysconfdir}/sysconfig/virtinterfaced
%config(noreplace) %{_sysconfdir}/libvirt/virtinterfaced.conf
%{_datadir}/augeas/lenses/virtinterfaced.aug
%{_datadir}/augeas/lenses/tests/test_virtinterfaced.aug
@@ -1729,8 +1743,11 @@ exit 0
%{_libdir}/%{name}/connection-driver/libvirt_driver_interface.so
%{_mandir}/man8/virtinterfaced.8*
+%pre daemon-driver-network
+%libvirt_sc_pre virtnetworkd
+%posttrans daemon-driver-network
+%libvirt_sc_posttrans virtnetworkd
%files daemon-driver-network
-%config(noreplace) %{_sysconfdir}/sysconfig/virtnetworkd
%config(noreplace) %{_sysconfdir}/libvirt/virtnetworkd.conf
%{_datadir}/augeas/lenses/virtnetworkd.aug
%{_datadir}/augeas/lenses/tests/test_virtnetworkd.aug
@@ -1753,8 +1770,11 @@ exit 0
%{_prefix}/lib/firewalld/zones/libvirt.xml
%endif
+%pre daemon-driver-nodedev
+%libvirt_sc_pre virtnodedevd
+%posttrans daemon-driver-nodedev
+%libvirt_sc_posttrans virtnodedevd
%files daemon-driver-nodedev
-%config(noreplace) %{_sysconfdir}/sysconfig/virtnodedevd
%config(noreplace) %{_sysconfdir}/libvirt/virtnodedevd.conf
%{_datadir}/augeas/lenses/virtnodedevd.aug
%{_datadir}/augeas/lenses/tests/test_virtnodedevd.aug
@@ -1766,8 +1786,11 @@ exit 0
%{_libdir}/%{name}/connection-driver/libvirt_driver_nodedev.so
%{_mandir}/man8/virtnodedevd.8*
+%pre daemon-driver-nwfilter
+%libvirt_sc_pre virtnwfilterd
+%posttrans daemon-driver-nwfilter
+%libvirt_sc_posttrans virtnwfilterd
%files daemon-driver-nwfilter
-%config(noreplace) %{_sysconfdir}/sysconfig/virtnwfilterd
%config(noreplace) %{_sysconfdir}/libvirt/virtnwfilterd.conf
%{_datadir}/augeas/lenses/virtnwfilterd.aug
%{_datadir}/augeas/lenses/tests/test_virtnwfilterd.aug
@@ -1781,8 +1804,11 @@ exit 0
%{_libdir}/%{name}/connection-driver/libvirt_driver_nwfilter.so
%{_mandir}/man8/virtnwfilterd.8*
+%pre daemon-driver-secret
+%libvirt_sc_pre virtsecretd
+%posttrans daemon-driver-secret
+%libvirt_sc_posttrans virtsecretd
%files daemon-driver-secret
-%config(noreplace) %{_sysconfdir}/sysconfig/virtsecretd
%config(noreplace) %{_sysconfdir}/libvirt/virtsecretd.conf
%{_datadir}/augeas/lenses/virtsecretd.aug
%{_datadir}/augeas/lenses/tests/test_virtsecretd.aug
@@ -1796,8 +1822,11 @@ exit 0
%files daemon-driver-storage
+%pre daemon-driver-storage-core
+%libvirt_sc_pre virtstoraged
+%posttrans daemon-driver-storage-core
+%libvirt_sc_posttrans virtstoraged
%files daemon-driver-storage-core
-%config(noreplace) %{_sysconfdir}/sysconfig/virtstoraged
%config(noreplace) %{_sysconfdir}/libvirt/virtstoraged.conf
%{_datadir}/augeas/lenses/virtstoraged.aug
%{_datadir}/augeas/lenses/tests/test_virtstoraged.aug
@@ -1855,7 +1884,6 @@ exit 0
%if %{with_qemu}
%files daemon-driver-qemu
-%config(noreplace) %{_sysconfdir}/sysconfig/virtqemud
%config(noreplace) %{_sysconfdir}/libvirt/virtqemud.conf
%config(noreplace) %{_prefix}/lib/sysctl.d/60-qemu-postcopy-migration.conf
%{_datadir}/augeas/lenses/virtqemud.aug
@@ -1884,8 +1912,11 @@ exit 0
%endif
%if %{with_lxc}
+%pre daemon-driver-lxc
+%libvirt_sc_pre virtlxcd
+%posttrans daemon-driver-lxc
+%libvirt_sc_posttrans virtlxcd
%files daemon-driver-lxc
-%config(noreplace) %{_sysconfdir}/sysconfig/virtlxcd
%config(noreplace) %{_sysconfdir}/libvirt/virtlxcd.conf
%{_datadir}/augeas/lenses/virtlxcd.aug
%{_datadir}/augeas/lenses/tests/test_virtlxcd.aug
@@ -1907,8 +1938,11 @@ exit 0
%endif
%if %{with_libxl}
+%pre daemon-driver-libxl
+%libvirt_sc_pre virtxend
+%posttrans daemon-driver-libxl
+%libvirt_sc_posttrans virtxend
%files daemon-driver-libxl
-%config(noreplace) %{_sysconfdir}/sysconfig/virtxend
%config(noreplace) %{_sysconfdir}/libvirt/virtxend.conf
%{_datadir}/augeas/lenses/virtxend.aug
%{_datadir}/augeas/lenses/tests/test_virtxend.aug
@@ -1930,8 +1964,11 @@ exit 0
%endif
%if %{with_vbox}
+%pre daemon-driver-vbox
+%libvirt_sc_pre virtvboxd
+%posttrans daemon-driver-vbox
+%libvirt_sc_posttrans virtvboxd
%files daemon-driver-vbox
-%config(noreplace) %{_sysconfdir}/sysconfig/virtvboxd
%config(noreplace) %{_sysconfdir}/libvirt/virtvboxd.conf
%{_datadir}/augeas/lenses/virtvboxd.aug
%{_datadir}/augeas/lenses/tests/test_virtvboxd.aug
diff --git a/src/ch/meson.build b/src/ch/meson.build
index e34974d56c..22d4366a21 100644
--- a/src/ch/meson.build
+++ b/src/ch/meson.build
@@ -62,11 +62,6 @@ if conf.has('WITH_CH')
'sockets': [ 'main', 'ro', 'admin' ],
}
- sysconf_files += {
- 'name': 'virtchd',
- 'file': files('virtchd.sysconf'),
- }
-
virt_install_dirs += [
localstatedir / 'lib' / 'libvirt' / 'ch',
runstatedir / 'libvirt' / 'ch',
diff --git a/src/ch/virtchd.service.in b/src/ch/virtchd.service.in
index cc1e85d1df..f08339f211 100644
--- a/src/ch/virtchd.service.in
+++ b/src/ch/virtchd.service.in
@@ -18,6 +18,7 @@
Documentation=https://libvirt.org
[Service]
Type=notify
+Environment=VIRTCHD_ARGS="--timeout 120"
EnvironmentFile=-@sysconfdir@/sysconfig/virtchd
ExecStart=@sbindir@/virtchd $VIRTCHD_ARGS
ExecReload=/bin/kill -HUP $MAINPID
diff --git a/src/ch/virtchd.sysconf b/src/ch/virtchd.sysconf
deleted file mode 100644
index 5ee44be5cf..0000000000
--- a/src/ch/virtchd.sysconf
+++ /dev/null
@@ -1,3 +0,0 @@
-# Customizations for the virtchd.service systemd unit
-
-VIRTCHD_ARGS="--timeout 120"
diff --git a/src/interface/meson.build b/src/interface/meson.build
index 2d4e30362c..f9f378aeb0 100644
--- a/src/interface/meson.build
+++ b/src/interface/meson.build
@@ -54,9 +54,4 @@ if conf.has('WITH_INTERFACE')
'name': 'virtinterfaced',
'in_file': files('virtinterfaced.init.in')
}
-
- sysconf_files += {
- 'name': 'virtinterfaced',
- 'file': files('virtinterfaced.sysconf'),
- }
endif
diff --git a/src/interface/virtinterfaced.service.in
b/src/interface/virtinterfaced.service.in
index 73d409b81b..3d944e17a9 100644
--- a/src/interface/virtinterfaced.service.in
+++ b/src/interface/virtinterfaced.service.in
@@ -13,6 +13,7 @@
Documentation=https://libvirt.org
[Service]
Type=notify
+Environment=VIRTINTERFACED_ARGS="--timeout 120"
EnvironmentFile=-@sysconfdir@/sysconfig/virtinterfaced
ExecStart=@sbindir@/virtinterfaced $VIRTINTERFACED_ARGS
ExecReload=/bin/kill -HUP $MAINPID
diff --git a/src/interface/virtinterfaced.sysconf b/src/interface/virtinterfaced.sysconf
deleted file mode 100644
index 0685da31b8..0000000000
--- a/src/interface/virtinterfaced.sysconf
+++ /dev/null
@@ -1,3 +0,0 @@
-# Customizations for the virtinterfaced.service systemd unit
-
-VIRTINTERFACED_ARGS="--timeout 120"
diff --git a/src/libxl/meson.build b/src/libxl/meson.build
index 9793899106..8347a3c966 100644
--- a/src/libxl/meson.build
+++ b/src/libxl/meson.build
@@ -78,11 +78,6 @@ if conf.has('WITH_LIBXL')
'in_file': files('virtxend.init.in'),
}
- sysconf_files += {
- 'name': 'virtxend',
- 'file': files('virtxend.sysconf'),
- }
-
virt_install_dirs += [
localstatedir / 'lib' / 'libvirt' / 'libxl',
runstatedir / 'libvirt' / 'libxl',
diff --git a/src/libxl/virtxend.service.in b/src/libxl/virtxend.service.in
index 19b19ce3e6..2b5163e179 100644
--- a/src/libxl/virtxend.service.in
+++ b/src/libxl/virtxend.service.in
@@ -18,6 +18,7 @@ ConditionPathExists=/proc/xen/capabilities
[Service]
Type=notify
+Environment=VIRTXEND_ARGS="--timeout 120"
EnvironmentFile=-@sysconfdir@/sysconfig/virtxend
ExecStart=@sbindir@/virtxend $VIRTXEND_ARGS
ExecReload=/bin/kill -HUP $MAINPID
diff --git a/src/libxl/virtxend.sysconf b/src/libxl/virtxend.sysconf
deleted file mode 100644
index 301da47e8d..0000000000
--- a/src/libxl/virtxend.sysconf
+++ /dev/null
@@ -1,3 +0,0 @@
-# Customizations for the virtxend.service systemd unit
-
-VIRTXEND_ARGS="--timeout 120"
diff --git a/src/locking/meson.build b/src/locking/meson.build
index 184d3c3f56..72f7780438 100644
--- a/src/locking/meson.build
+++ b/src/locking/meson.build
@@ -156,11 +156,6 @@ if conf.has('WITH_LIBVIRTD')
'in_file': files('virtlockd.init.in'),
}
- sysconf_files += {
- 'name': 'virtlockd',
- 'file': files('virtlockd.sysconf'),
- }
-
if conf.has('WITH_SANLOCK')
virt_helpers += {
'name': 'libvirt_sanlock_helper',
diff --git a/src/locking/virtlockd.service.in b/src/locking/virtlockd.service.in
index 4a6fab05ab..19271d1e7d 100644
--- a/src/locking/virtlockd.service.in
+++ b/src/locking/virtlockd.service.in
@@ -7,6 +7,7 @@ Documentation=man:virtlockd(8)
Documentation=https://libvirt.org
[Service]
+Environment=VIRTLOCKD_ARGS=
EnvironmentFile=-@sysconfdir@/sysconfig/virtlockd
ExecStart=@sbindir@/virtlockd $VIRTLOCKD_ARGS
ExecReload=/bin/kill -USR1 $MAINPID
diff --git a/src/locking/virtlockd.sysconf b/src/locking/virtlockd.sysconf
deleted file mode 100644
index 03aea9e1bc..0000000000
--- a/src/locking/virtlockd.sysconf
+++ /dev/null
@@ -1,3 +0,0 @@
-# Customizations for the virtlockd.service systemd unit
-
-VIRTLOCKD_ARGS=""
diff --git a/src/logging/meson.build b/src/logging/meson.build
index 996d4265fc..f06be6050d 100644
--- a/src/logging/meson.build
+++ b/src/logging/meson.build
@@ -96,11 +96,6 @@ if conf.has('WITH_LIBVIRTD')
'name': 'virtlogd',
'in_file': files('virtlogd.init.in'),
}
-
- sysconf_files += {
- 'name': 'virtlogd',
- 'file': files('virtlogd.sysconf'),
- }
endif
log_inc_dir = include_directories('.')
diff --git a/src/logging/virtlogd.sysconf b/src/logging/virtlogd.sysconf
deleted file mode 100644
index 67993e83ce..0000000000
--- a/src/logging/virtlogd.sysconf
+++ /dev/null
@@ -1,3 +0,0 @@
-# Customizations for the virtlogd.service systemd unit
-
-VIRTLOGD_ARGS=""
diff --git a/src/lxc/meson.build b/src/lxc/meson.build
index ad5c659dba..c1f71b43e1 100644
--- a/src/lxc/meson.build
+++ b/src/lxc/meson.build
@@ -175,11 +175,6 @@ if conf.has('WITH_LXC')
'in_file': files('virtlxcd.init.in'),
}
- sysconf_files += {
- 'name': 'virtlxcd',
- 'file': files('virtlxcd.sysconf'),
- }
-
virt_install_dirs += [
localstatedir / 'lib' / 'libvirt' / 'lxc',
runstatedir / 'libvirt' / 'lxc',
diff --git a/src/lxc/virtlxcd.service.in b/src/lxc/virtlxcd.service.in
index 3af7c1a52d..d58bde9f5d 100644
--- a/src/lxc/virtlxcd.service.in
+++ b/src/lxc/virtlxcd.service.in
@@ -18,6 +18,7 @@
Documentation=https://libvirt.org
[Service]
Type=notify
+Environment=VIRTLXCD_ARGS="--timeout 120"
EnvironmentFile=-@sysconfdir@/sysconfig/virtlxcd
ExecStart=@sbindir@/virtlxcd $VIRTLXCD_ARGS
ExecReload=/bin/kill -HUP $MAINPID
diff --git a/src/lxc/virtlxcd.sysconf b/src/lxc/virtlxcd.sysconf
deleted file mode 100644
index 119a4a23f3..0000000000
--- a/src/lxc/virtlxcd.sysconf
+++ /dev/null
@@ -1,3 +0,0 @@
-# Customizations for the virtlxcd.service systemd unit
-
-VIRTLXCD_ARGS="--timeout 120"
diff --git a/src/meson.build b/src/meson.build
index 2bd88e6699..9ee8b987ae 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -208,12 +208,6 @@ virt_daemon_units = []
# * in_file - source init file (required)
openrc_init_files = []
-# sysconf_files
-# install libvirt daemon sysconf files
-# * name - daemon name (required)
-# * file - source sysconf file (required)
-sysconf_files = []
-
# virt_install_dirs:
# list of directories to create during installation
virt_install_dirs = []
@@ -868,16 +862,6 @@ if conf.has('WITH_LIBVIRTD')
endif
endif
-if init_script != 'none'
- foreach sysconf : sysconf_files
- install_data(
- sysconf['file'],
- install_dir: sysconfdir / 'sysconfig',
- rename: [ sysconf['name'] ],
- )
- endforeach
-endif
-
if conf.has('WITH_DTRACE_PROBES')
custom_target(
'libvirt_functions.stp',
diff --git a/src/network/meson.build b/src/network/meson.build
index d6fb624bb7..e7c43bc4c4 100644
--- a/src/network/meson.build
+++ b/src/network/meson.build
@@ -72,11 +72,6 @@ if conf.has('WITH_NETWORK')
'in_file': files('virtnetworkd.init.in'),
}
- sysconf_files += {
- 'name': 'virtnetworkd',
- 'file': files('virtnetworkd.sysconf'),
- }
-
virt_install_dirs += [
localstatedir / 'lib' / 'libvirt' / 'network',
localstatedir / 'lib' / 'libvirt' / 'dnsmasq',
diff --git a/src/network/virtnetworkd.service.in b/src/network/virtnetworkd.service.in
index 4c39d2a5d7..3decfbbf1d 100644
--- a/src/network/virtnetworkd.service.in
+++ b/src/network/virtnetworkd.service.in
@@ -16,6 +16,7 @@
Documentation=https://libvirt.org
[Service]
Type=notify
+Environment=VIRTNETWORKD_ARGS="--timeout 120"
EnvironmentFile=-@sysconfdir@/sysconfig/virtnetworkd
ExecStart=@sbindir@/virtnetworkd $VIRTNETWORKD_ARGS
ExecReload=/bin/kill -HUP $MAINPID
diff --git a/src/network/virtnetworkd.sysconf b/src/network/virtnetworkd.sysconf
deleted file mode 100644
index 93f3a7a327..0000000000
--- a/src/network/virtnetworkd.sysconf
+++ /dev/null
@@ -1,3 +0,0 @@
-# Customizations for the virtnetworkd.service systemd unit
-
-VIRTNETWORKD_ARGS="--timeout 120"
diff --git a/src/node_device/meson.build b/src/node_device/meson.build
index 15f9c3ad29..5013d825b3 100644
--- a/src/node_device/meson.build
+++ b/src/node_device/meson.build
@@ -62,9 +62,4 @@ if conf.has('WITH_NODE_DEVICES')
'name': 'virtnodedevd',
'in_file': files('virtnodedevd.init.in'),
}
-
- sysconf_files += {
- 'name': 'virtnodedevd',
- 'file': files('virtnodedevd.sysconf'),
- }
endif
diff --git a/src/node_device/virtnodedevd.service.in
b/src/node_device/virtnodedevd.service.in
index d2453dd620..688cf89822 100644
--- a/src/node_device/virtnodedevd.service.in
+++ b/src/node_device/virtnodedevd.service.in
@@ -13,6 +13,7 @@
Documentation=https://libvirt.org
[Service]
Type=notify
+Environment=VIRTNODEDEVD_ARGS="--timeout 120"
EnvironmentFile=-@sysconfdir@/sysconfig/virtnodedevd
ExecStart=@sbindir@/virtnodedevd $VIRTNODEDEVD_ARGS
ExecReload=/bin/kill -HUP $MAINPID
diff --git a/src/node_device/virtnodedevd.sysconf b/src/node_device/virtnodedevd.sysconf
deleted file mode 100644
index fa7faa3a79..0000000000
--- a/src/node_device/virtnodedevd.sysconf
+++ /dev/null
@@ -1,3 +0,0 @@
-# Customizations for the virtnodedevd.service systemd unit
-
-VIRTNODEDEVD_ARGS="--timeout 120"
diff --git a/src/nwfilter/meson.build b/src/nwfilter/meson.build
index a21e575925..ebbe712906 100644
--- a/src/nwfilter/meson.build
+++ b/src/nwfilter/meson.build
@@ -61,10 +61,5 @@ if conf.has('WITH_NWFILTER')
'in_file': files('virtnwfilterd.init.in'),
}
- sysconf_files += {
- 'name': 'virtnwfilterd',
- 'file': files('virtnwfilterd.sysconf'),
- }
-
subdir('xml')
endif
diff --git a/src/nwfilter/virtnwfilterd.service.in
b/src/nwfilter/virtnwfilterd.service.in
index dda7c01a3d..36d00b58f0 100644
--- a/src/nwfilter/virtnwfilterd.service.in
+++ b/src/nwfilter/virtnwfilterd.service.in
@@ -13,6 +13,7 @@
Documentation=https://libvirt.org
[Service]
Type=notify
+Environment=VIRTNWFILTERD_ARGS="--timeout 120"
EnvironmentFile=-@sysconfdir@/sysconfig/virtnwfilterd
ExecStart=@sbindir@/virtnwfilterd $VIRTNWFILTERD_ARGS
ExecReload=/bin/kill -HUP $MAINPID
diff --git a/src/nwfilter/virtnwfilterd.sysconf b/src/nwfilter/virtnwfilterd.sysconf
deleted file mode 100644
index 80cc645ba5..0000000000
--- a/src/nwfilter/virtnwfilterd.sysconf
+++ /dev/null
@@ -1,3 +0,0 @@
-# Customizations for the virtnwfilterd.service systemd unit
-
-VIRTNWFILTERD_ARGS="--timeout 120"
diff --git a/src/qemu/meson.build b/src/qemu/meson.build
index 66ef594006..5f82f687c1 100644
--- a/src/qemu/meson.build
+++ b/src/qemu/meson.build
@@ -165,11 +165,6 @@ if conf.has('WITH_QEMU')
'in_file': files('virtqemud.init.in'),
}
- sysconf_files += {
- 'name': 'virtqemud',
- 'file': files('virtqemud.sysconf'),
- }
-
if conf.has('WITH_SYSCTL')
install_data(
'postcopy-migration.sysctl',
diff --git a/src/qemu/virtqemud.service.in b/src/qemu/virtqemud.service.in
index 20e1b43a6e..1296d7d766 100644
--- a/src/qemu/virtqemud.service.in
+++ b/src/qemu/virtqemud.service.in
@@ -20,6 +20,13 @@
Documentation=https://libvirt.org
[Service]
Type=notify
+# Override the QEMU/SDL default audio driver probing when
+# starting virtual machines using SDL graphics
+# NB these have no effect for VMs using VNC, unless vnc_allow_host_audio
+# is enabled in /etc/libvirt/qemu.conf
+#Environment=QEMU_AUDIO_DRV=sdl
+#Environment=SDL_AUDIODRIVER=pulse
+Environment=VIRTQEMUD_ARGS="--timeout 120"
EnvironmentFile=-@sysconfdir@/sysconfig/virtqemud
ExecStart=@sbindir@/virtqemud $VIRTQEMUD_ARGS
ExecReload=/bin/kill -HUP $MAINPID
diff --git a/src/qemu/virtqemud.sysconf b/src/qemu/virtqemud.sysconf
deleted file mode 100644
index 87b626e3ed..0000000000
--- a/src/qemu/virtqemud.sysconf
+++ /dev/null
@@ -1,12 +0,0 @@
-# Customizations for the virtqemud.service systemd unit
-
-VIRTQEMUD_ARGS="--timeout 120"
-
-# Override the QEMU/SDL default audio driver probing when
-# starting virtual machines using SDL graphics
-#
-# NB these have no effect for VMs using VNC, unless vnc_allow_host_audio
-# is enabled in /etc/libvirt/qemu.conf
-#QEMU_AUDIO_DRV=sdl
-#
-#SDL_AUDIODRIVER=pulse
diff --git a/src/remote/libvirtd.service.in b/src/remote/libvirtd.service.in
index cc0d4e3693..4d6b0510ae 100644
--- a/src/remote/libvirtd.service.in
+++ b/src/remote/libvirtd.service.in
@@ -28,6 +28,13 @@
Documentation=https://libvirt.org
[Service]
Type=notify
+# Override the QEMU/SDL default audio driver probing when
+# starting virtual machines using SDL graphics
+# NB these have no effect for VMs using VNC, unless vnc_allow_host_audio
+# is enabled in /etc/libvirt/qemu.conf
+#Environment=QEMU_AUDIO_DRV=sdl
+#Environment=SDL_AUDIODRIVER=pulse
+Environment=LIBVIRTD_ARGS="--timeout 120"
EnvironmentFile=-@sysconfdir@/sysconfig/libvirtd
ExecStart=@sbindir@/libvirtd $LIBVIRTD_ARGS
ExecReload=/bin/kill -HUP $MAINPID
diff --git a/src/remote/libvirtd.sysconf b/src/remote/libvirtd.sysconf
deleted file mode 100644
index 18aec1ba67..0000000000
--- a/src/remote/libvirtd.sysconf
+++ /dev/null
@@ -1,21 +0,0 @@
-# Customizations for the libvirtd.service systemd unit
-
-# Default behaviour is for libvirtd.service to start on boot
-# so that VM autostart can be performed. We then want it to
-# shutdown again if nothing was started and rely on systemd
-# socket activation to start it again when some client app
-# connects.
-LIBVIRTD_ARGS="--timeout 120"
-
-# If systemd socket activation is disabled, then the following
-# can be used to listen on TCP/TLS sockets
-#LIBVIRTD_ARGS="--listen"
-
-# Override the QEMU/SDL default audio driver probing when
-# starting virtual machines using SDL graphics
-#
-# NB these have no effect for VMs using VNC, unless vnc_allow_host_audio
-# is enabled in /etc/libvirt/qemu.conf
-#QEMU_AUDIO_DRV=sdl
-#
-#SDL_AUDIODRIVER=pulse
diff --git a/src/remote/meson.build b/src/remote/meson.build
index 0a188268b5..fc98d0e5be 100644
--- a/src/remote/meson.build
+++ b/src/remote/meson.build
@@ -204,11 +204,6 @@ if conf.has('WITH_REMOTE')
'confd': files('libvirtd.confd'),
}
- sysconf_files += {
- 'name': 'libvirtd',
- 'file': files('libvirtd.sysconf'),
- }
-
virt_daemons += {
'name': 'virtproxyd',
'c_args': [
@@ -239,11 +234,6 @@ if conf.has('WITH_REMOTE')
'confd': files('virtproxyd.confd'),
}
- sysconf_files += {
- 'name': 'virtproxyd',
- 'file': files('virtproxyd.sysconf'),
- }
-
virt_install_dirs += [
localstatedir / 'log' / 'libvirt',
]
diff --git a/src/remote/virtproxyd.service.in b/src/remote/virtproxyd.service.in
index f43ce9ee6e..10e8cf7263 100644
--- a/src/remote/virtproxyd.service.in
+++ b/src/remote/virtproxyd.service.in
@@ -13,6 +13,7 @@
Documentation=https://libvirt.org
[Service]
Type=notify
+Environment=VIRTPROXYD_ARGS="--timeout 120"
EnvironmentFile=-@sysconfdir@/sysconfig/virtproxyd
ExecStart=@sbindir@/virtproxyd $VIRTPROXYD_ARGS
ExecReload=/bin/kill -HUP $MAINPID
diff --git a/src/remote/virtproxyd.sysconf b/src/remote/virtproxyd.sysconf
deleted file mode 100644
index 0fc5c61096..0000000000
--- a/src/remote/virtproxyd.sysconf
+++ /dev/null
@@ -1,3 +0,0 @@
-# Customizations for the virtproxyd.service systemd unit
-
-VIRTPROXYD_ARGS="--timeout 120"
diff --git a/src/secret/meson.build b/src/secret/meson.build
index a487055cde..efc0ebb1e6 100644
--- a/src/secret/meson.build
+++ b/src/secret/meson.build
@@ -43,9 +43,4 @@ if conf.has('WITH_SECRETS')
'name': 'virtsecretd',
'in_file': files('virtsecretd.init.in'),
}
-
- sysconf_files += {
- 'name': 'virtsecretd',
- 'file': files('virtsecretd.sysconf'),
- }
endif
diff --git a/src/secret/virtsecretd.service.in b/src/secret/virtsecretd.service.in
index 8444142a3a..cbd63fe0b2 100644
--- a/src/secret/virtsecretd.service.in
+++ b/src/secret/virtsecretd.service.in
@@ -13,6 +13,7 @@
Documentation=https://libvirt.org
[Service]
Type=notify
+Environment=VIRTSECRETD_ARGS="--timeout 120"
EnvironmentFile=-@sysconfdir@/sysconfig/virtsecretd
ExecStart=@sbindir@/virtsecretd $VIRTSECRETD_ARGS
ExecReload=/bin/kill -HUP $MAINPID
diff --git a/src/secret/virtsecretd.sysconf b/src/secret/virtsecretd.sysconf
deleted file mode 100644
index 2247d05964..0000000000
--- a/src/secret/virtsecretd.sysconf
+++ /dev/null
@@ -1,3 +0,0 @@
-# Customizations for the virtsecretd.service systemd unit
-
-VIRTSECRETD_ARGS="--timeout 120"
diff --git a/src/storage/meson.build b/src/storage/meson.build
index d1aa66b147..c43707461d 100644
--- a/src/storage/meson.build
+++ b/src/storage/meson.build
@@ -125,11 +125,6 @@ if conf.has('WITH_STORAGE')
'name': 'virtstoraged',
'in_file': files('virtstoraged.init.in'),
}
-
- sysconf_files += {
- 'name': 'virtstoraged',
- 'file': files('virtstoraged.sysconf'),
- }
endif
if conf.has('WITH_STORAGE_DISK')
diff --git a/src/storage/virtstoraged.service.in b/src/storage/virtstoraged.service.in
index fc3e9a1b69..f72f8426fd 100644
--- a/src/storage/virtstoraged.service.in
+++ b/src/storage/virtstoraged.service.in
@@ -15,6 +15,7 @@
Documentation=https://libvirt.org
[Service]
Type=notify
+Environment=VIRTSTORAGED_ARGS="--timeout 120"
EnvironmentFile=-@sysconfdir@/sysconfig/virtstoraged
ExecStart=@sbindir@/virtstoraged $VIRTSTORAGED_ARGS
ExecReload=/bin/kill -HUP $MAINPID
diff --git a/src/storage/virtstoraged.sysconf b/src/storage/virtstoraged.sysconf
deleted file mode 100644
index 122373eb7c..0000000000
--- a/src/storage/virtstoraged.sysconf
+++ /dev/null
@@ -1,3 +0,0 @@
-# Customizations for the virtstoraged.service systemd unit
-
-VIRTSTORAGED_ARGS="--timeout 120"
diff --git a/src/vbox/meson.build b/src/vbox/meson.build
index df0cfb40e8..240f2389a9 100644
--- a/src/vbox/meson.build
+++ b/src/vbox/meson.build
@@ -68,9 +68,4 @@ if conf.has('WITH_VBOX')
'name': 'virtvboxd',
'in_file': files('virtvboxd.init.in'),
}
-
- sysconf_files += {
- 'name': 'virtvboxd',
- 'file': files('virtvboxd.sysconf'),
- }
endif
diff --git a/src/vbox/virtvboxd.service.in b/src/vbox/virtvboxd.service.in
index ebb31dde07..cfdafc39d2 100644
--- a/src/vbox/virtvboxd.service.in
+++ b/src/vbox/virtvboxd.service.in
@@ -14,6 +14,7 @@
Documentation=https://libvirt.org
[Service]
Type=notify
+Environment=VIRTVBOXD_ARGS="--timeout 120"
EnvironmentFile=-@sysconfdir@/sysconfig/virtvboxd
ExecStart=@sbindir@/virtvboxd $VIRTVBOXD_ARGS
ExecReload=/bin/kill -HUP $MAINPID
diff --git a/src/vbox/virtvboxd.sysconf b/src/vbox/virtvboxd.sysconf
deleted file mode 100644
index 37ad353d54..0000000000
--- a/src/vbox/virtvboxd.sysconf
+++ /dev/null
@@ -1,3 +0,0 @@
-# Customizations for the virtvboxd.service systemd unit
-
-VIRTVBOXD_ARGS="--timeout 120"
diff --git a/src/vz/meson.build b/src/vz/meson.build
index 14f7280f66..d102696943 100644
--- a/src/vz/meson.build
+++ b/src/vz/meson.build
@@ -58,9 +58,4 @@ if conf.has('WITH_VZ')
'name': 'virtvzd',
'in_file': files('virtvzd.init.in'),
}
-
- sysconf_files += {
- 'name': 'virtvzd',
- 'file': files('virtvzd.sysconf'),
- }
endif
diff --git a/src/vz/virtvzd.service.in b/src/vz/virtvzd.service.in
index f551cb8fbf..7636bf2b9e 100644
--- a/src/vz/virtvzd.service.in
+++ b/src/vz/virtvzd.service.in
@@ -14,6 +14,7 @@
Documentation=https://libvirt.org
[Service]
Type=notify
+Environment=VIRTVZD_ARGS="--timeout 120"
EnvironmentFile=-@sysconfdir@/sysconfig/virtvzd
ExecStart=@sbindir@/virtvzd $VIRTVZD_ARGS
ExecReload=/bin/kill -HUP $MAINPID
diff --git a/src/vz/virtvzd.sysconf b/src/vz/virtvzd.sysconf
deleted file mode 100644
index a86b9dfb6c..0000000000
--- a/src/vz/virtvzd.sysconf
+++ /dev/null
@@ -1,3 +0,0 @@
-# Customizations for the virtvzd.service systemd unit
-
-VIRTVZD_ARGS="--timeout 120"
diff --git a/tools/libvirt-guests.sh.in b/tools/libvirt-guests.sh.in
index 87f96af14d..74ca969468 100644
--- a/tools/libvirt-guests.sh.in
+++ b/tools/libvirt-guests.sh.in
@@ -30,13 +30,53 @@ test ! -r "$sysconfdir"/rc.d/init.d/functions ||
export TEXTDOMAIN="@PACKAGE@" TEXTDOMAINDIR="@localedir@"
+# URIs to check for running guests
+# example: URIS='default xen:///system vbox+tcp://host/system lxc:///system'
URIS="default"
+
+# action taken on host boot
+# - start all guests which were running on shutdown are started on boot
+# regardless on their autostart settings
+# - ignore libvirt-guests init script won't start any guest on boot, however,
+# guests marked as autostart will still be automatically started by
+# libvirtd
ON_BOOT="start"
+
+# action taken on host shutdown
+# - suspend all running guests are suspended using virsh managedsave
+# - shutdown all running guests are asked to shutdown. Please be careful with
+# this settings since there is no way to distinguish between a
+# guest which is stuck or ignores shutdown requests and a guest
+# which just needs a long time to shutdown. When setting
+# ON_SHUTDOWN=shutdown, you must also set SHUTDOWN_TIMEOUT to a
+# value suitable for your guests.
ON_SHUTDOWN="suspend"
+
+# Number of seconds we're willing to wait for a guest to shut down. If parallel
+# shutdown is enabled, this timeout applies as a timeout for shutting down all
+# guests on a single URI defined in the variable URIS. If this is 0, then there
+# is no time out (use with caution, as guests might not respond to a shutdown
+# request). The default value is 300 seconds (5 minutes).
SHUTDOWN_TIMEOUT=300
+
+# Number of guests will be shutdown concurrently, taking effect when
+# "ON_SHUTDOWN" is set to "shutdown". If Set to 0, guests will be
shutdown one
+# after another. Number of guests on shutdown at any time will not exceed number
+# set in this variable.
PARALLEL_SHUTDOWN=0
+
+# Number of seconds to wait between each guest start. Set to 0 to allow
+# parallel startup.
START_DELAY=0
+
+# If non-zero, try to bypass the file system cache when saving and
+# restoring guests, even though this may give slower operation for
+# some file systems.
BYPASS_CACHE=0
+
+# If non-zero, try to sync guest time on domain resume. Be aware, that
+# this requires guest agent with support for time synchronization
+# running in the guest. By default, this functionality is turned off.
SYNC_TIME=0
test -f "$sysconfdir"/sysconfig/libvirt-guests &&
diff --git a/tools/libvirt-guests.sysconf b/tools/libvirt-guests.sysconf
deleted file mode 100644
index 4f83edab90..0000000000
--- a/tools/libvirt-guests.sysconf
+++ /dev/null
@@ -1,50 +0,0 @@
-# Customizations for the libvirt-guests.service systemd unit
-
-# URIs to check for running guests
-# example: URIS='default xen:///system vbox+tcp://host/system lxc:///system'
-#URIS=default
-
-# action taken on host boot
-# - start all guests which were running on shutdown are started on boot
-# regardless on their autostart settings
-# - ignore libvirt-guests init script won't start any guest on boot, however,
-# guests marked as autostart will still be automatically started by
-# libvirtd
-#ON_BOOT=start
-
-# Number of seconds to wait between each guest start. Set to 0 to allow
-# parallel startup.
-#START_DELAY=0
-
-# action taken on host shutdown
-# - suspend all running guests are suspended using virsh managedsave
-# - shutdown all running guests are asked to shutdown. Please be careful with
-# this settings since there is no way to distinguish between a
-# guest which is stuck or ignores shutdown requests and a guest
-# which just needs a long time to shutdown. When setting
-# ON_SHUTDOWN=shutdown, you must also set SHUTDOWN_TIMEOUT to a
-# value suitable for your guests.
-#ON_SHUTDOWN=suspend
-
-# Number of guests will be shutdown concurrently, taking effect when
-# "ON_SHUTDOWN" is set to "shutdown". If Set to 0, guests will be
shutdown one
-# after another. Number of guests on shutdown at any time will not exceed number
-# set in this variable.
-#PARALLEL_SHUTDOWN=0
-
-# Number of seconds we're willing to wait for a guest to shut down. If parallel
-# shutdown is enabled, this timeout applies as a timeout for shutting down all
-# guests on a single URI defined in the variable URIS. If this is 0, then there
-# is no time out (use with caution, as guests might not respond to a shutdown
-# request). The default value is 300 seconds (5 minutes).
-#SHUTDOWN_TIMEOUT=300
-
-# If non-zero, try to bypass the file system cache when saving and
-# restoring guests, even though this may give slower operation for
-# some file systems.
-#BYPASS_CACHE=0
-
-# If non-zero, try to sync guest time on domain resume. Be aware, that
-# this requires guest agent with support for time synchronization
-# running in the guest. By default, this functionality is turned off.
-#SYNC_TIME=1
diff --git a/tools/meson.build b/tools/meson.build
index 3fba313e5f..52b08b8526 100644
--- a/tools/meson.build
+++ b/tools/meson.build
@@ -305,12 +305,6 @@ configure_file(
)
if init_script == 'systemd'
- install_data(
- 'libvirt-guests.sysconf',
- install_dir: sysconfdir / 'sysconfig',
- rename: 'libvirt-guests',
- )
-
configure_file(
input: 'libvirt-guests.service.in',
output: '@BASENAME@',