[libvirt] [PATCH] RFC: experimental libvirtd upstart job

apevec at gmail.com apevec at gmail.com
Fri Feb 18 18:45:49 UTC 2011


From: Alan Pevec <apevec at redhat.com>

To install it, disable libvirtd sysv initscript:
    chkconfig libvirtd off
    service libvirtd stop

and enable libvirtd upstart job:
    cp  /usr/share/doc/libvirt-*/libvirtd.upstart \
        /etc/init/libvirtd.conf
    initctl reload-configuration
    initctl start libvirtd

Test:
    initctl status libvirtd
libvirtd start/running, process 3929
    killall -9 libvirtd
    initctl status libvirtd
libvirtd start/running, process 4047
---
 daemon/Makefile.am      |    1 +
 daemon/libvirtd.upstart |   47 +++++++++++++++++++++++++++++++++++++++++++++++
 libvirt.spec.in         |    1 +
 3 files changed, 49 insertions(+), 0 deletions(-)
 create mode 100644 daemon/libvirtd.upstart

diff --git a/daemon/Makefile.am b/daemon/Makefile.am
index cdf0f75..a4ebcf8 100644
--- a/daemon/Makefile.am
+++ b/daemon/Makefile.am
@@ -27,6 +27,7 @@ EXTRA_DIST =						\
 	remote_generate_stubs.pl			\
 	libvirtd.conf					\
 	libvirtd.init.in				\
+	libvirtd.upstart				\
 	libvirtd.policy-0				\
 	libvirtd.policy-1				\
 	libvirtd.sasl					\
diff --git a/daemon/libvirtd.upstart b/daemon/libvirtd.upstart
new file mode 100644
index 0000000..40d5fa3
--- /dev/null
+++ b/daemon/libvirtd.upstart
@@ -0,0 +1,47 @@
+# libvirtd upstart job
+#
+# XXX wait for rc to get all dependent initscripts started
+# from sysv libvirtd initscript: Required-Start: $network messagebus
+start on stopped rc RUNLEVEL=[345]
+stop on runlevel [016]
+respawn
+# default rate limit is 10x/5s
+#respawn limit 10 5
+
+# DAEMON_COREFILE_LIMIT in /etc/sysconfig/libvirtd doesn't have effect
+# must set resource limits here
+#limit core unlimited unlimited
+
+# documented http://upstart.ubuntu.com/wiki/Stanzas#pid
+# but not accepted by upstart-0.6.5
+#pid file /var/run/libvirtd.pid
+
+env PIDFILE=/var/run/libvirtd.pid
+
+script
+	LIBVIRTD_CONFIG=
+	LIBVIRTD_ARGS=
+	KRB5_KTNAME=/etc/libvirt/krb5.tab
+	
+	test -f /etc/sysconfig/libvirtd && . /etc/sysconfig/libvirtd
+	
+	export QEMU_AUDIO_DRV
+	export SDL_AUDIODRIVER
+	
+	LIBVIRTD_CONFIG_ARGS=
+	if [ -n "$LIBVIRTD_CONFIG" ]
+	then
+		LIBVIRTD_CONFIG_ARGS="--config $LIBVIRTD_CONFIG"
+	else
+		true
+	fi
+	
+	mkdir -p /var/cache/libvirt
+	rm -rf /var/cache/libvirt/*
+	KRB5_KTNAME=$KRB5_KTNAME /usr/sbin/libvirtd $LIBVIRTD_CONFIG_ARGS $LIBVIRTD_ARGS
+end script
+
+post-stop script
+	rm -f $PIDFILE
+	rm -rf /var/cache/libvirt/*
+end script
diff --git a/libvirt.spec.in b/libvirt.spec.in
index a29693a..365000c 100644
--- a/libvirt.spec.in
+++ b/libvirt.spec.in
@@ -854,6 +854,7 @@ fi
 %{_sysconfdir}/libvirt/nwfilter/*.xml
 
 %{_sysconfdir}/rc.d/init.d/libvirtd
+%doc daemon/libvirtd.upstart
 %config(noreplace) %{_sysconfdir}/sysconfig/libvirtd
 %config(noreplace) %{_sysconfdir}/libvirt/libvirtd.conf
 %if %{with_dtrace}
-- 
1.7.3.4




More information about the libvir-list mailing list