Quoting ape...@gmail.com (ape...@gmail.com):
> From: Alan Pevec <ape...@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 <kirkl...@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

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Reply via email to