
Quoting apevec@gmail.com (apevec@gmail.com):
From: Alan Pevec <apevec@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
Hi, If you're using upstart, then why use your own pidfile? FWIW, attached is the upstart script used in Ubuntu: ============================================= description "libvirt daemon" author "Dustin Kirkland <kirkland@canonical.com>" start on runlevel [2345] stop on runlevel [!2345] expect daemon respawn env libvirtd_opts="-d" env start_libvirtd="yes" pre-start script [ -r /etc/default/libvirt-bin ] && . /etc/default/libvirt-bin [ ! "x$start_libvirtd" = "xyes" ] && { stop; exit 0; } mkdir -p /var/run/libvirt # Clean up a pidfile that might be left around rm -f /var/run/libvirtd.pid end script # If you used to set $libvirtd_opts in /etc/default/libvirt-bin, # change the 'exec' line here instead. exec /usr/sbin/libvirtd $libvirtd_opts ============================================= In order to play nicely with libcgroup, we're also testing the following job to ship with libcgroup: ============================================= # libvirt-cgred-wait start on starting libvirt-bin stop on started cgred or stopped cgred task normal exit 2 script status cgred | grep -q "start/running" && exit 0 start cgred || true sleep 3600 end script ============================================= thanks, -serge