From: Alan Pevec <[email protected]>

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

--
libvir-list mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/libvir-list

Reply via email to