diff options
author | Roger Pau Monne <roger.pau@entel.upc.edu> | 2011-07-15 18:22:03 +0100 |
---|---|---|
committer | Roger Pau Monne <roger.pau@entel.upc.edu> | 2011-07-15 18:22:03 +0100 |
commit | 2e8644e1d90b08330bc72661f11600ba9ef980e4 (patch) | |
tree | 9e032c9b27b63efb98d243738dfd3ae36a508e01 /tools/hotplug | |
parent | c57de7d5ae7dd3fd6417f814c6a15dc1f7ded13c (diff) | |
download | xen-2e8644e1d90b08330bc72661f11600ba9ef980e4.tar.gz xen-2e8644e1d90b08330bc72661f11600ba9ef980e4.tar.bz2 xen-2e8644e1d90b08330bc72661f11600ba9ef980e4.zip |
tools: xencommons NetBSD init script: Multiple bugfixes and improvements
Added a cleanup of the xenstore database, to purge old entries,
prevented the restart of xenstore and set Domain-0 name. Also
replaced the sleep 5 (wait for xenstore to come up) with the method
used in the linux init script.
Signed-off-by: Roger Pau Monne <roger.pau@entel.upc.edu>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Christoph Egger <Christoph.Egger@amd.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
Diffstat (limited to 'tools/hotplug')
-rw-r--r-- | tools/hotplug/NetBSD/rc.d/xencommons | 45 |
1 files changed, 33 insertions, 12 deletions
diff --git a/tools/hotplug/NetBSD/rc.d/xencommons b/tools/hotplug/NetBSD/rc.d/xencommons index f0e10260e8..c0d87bf4da 100644 --- a/tools/hotplug/NetBSD/rc.d/xencommons +++ b/tools/hotplug/NetBSD/rc.d/xencommons @@ -23,6 +23,9 @@ required_files="/kern/xen/privcmd" XENSTORED_PIDFILE="/var/run/xenstored.pid" XENCONSOLED_PIDFILE="/var/run/xenconsoled.pid" XENBACKENDD_PIDFILE="/var/run/xenbackendd.pid" +#XENBACKENDD_DEBUG=1 +#XENCONSOLED_TRACE="/var/log/xen/xenconsole-trace.log" +#XENSTORED_TRACE="/var/log/xen/xenstore-trace.log" xen_precmd() { @@ -33,14 +36,30 @@ xen_precmd() xen_startcmd() { - printf "Starting xenservices: xenstored, xenconsoled, xenbackendd.\n" - XENSTORED_ARGS=" --pid-file ${XENSTORED_PIDFILE}" - if [ -n "${XENSTORED_TRACE}" ]; then - XENSTORED_ARGS="${XENSTORED_ARGS} -T /var/log/xen/xenstored-trace.log" - fi + local time=0 + local timeout=30 - ${SBINDIR}/xenstored ${XENSTORED_ARGS} - sleep 5 + xenstored_pid=$(check_pidfile ${XENSTORED_PIDFILE} ${SBINDIR}/xenstored) + if test -z "$xenstored_pid"; then + printf "Cleaning xenstore database.\n" + if [ -z "${XENSTORED_ROOTDIR}" ]; then + XENSTORED_ROOTDIR="/var/lib/xenstored" + fi + rm -f ${XENSTORED_ROOTDIR}/tdb* >/dev/null 2>&1 + printf "Starting xenservices: xenstored, xenconsoled, xenbackendd." + XENSTORED_ARGS=" --pid-file ${XENSTORED_PIDFILE}" + if [ -n "${XENSTORED_TRACE}" ]; then + XENSTORED_ARGS="${XENSTORED_ARGS} -T /var/log/xen/xenstored-trace.log" + fi + ${SBINDIR}/xenstored ${XENSTORED_ARGS} + while [ $time -lt $timeout ] && ! `${BINDIR}/xenstore-read -s / >/dev/null 2>&1` ; do + printf "." + time=$(($time+1)) + sleep 1 + done + else + printf "Starting xenservices: xenconsoled, xenbackendd." + fi XENCONSOLED_ARGS="" if [ -n "${XENCONSOLED_TRACE}" ]; then @@ -55,24 +74,26 @@ xen_startcmd() fi ${SBINDIR}/xenbackendd ${XENBACKENDD_ARGS} + + printf "\n" + + printf "Setting domain 0 name.\n" + ${BINDIR}/xenstore-write "/local/domain/0/name" "Domain-0" } xen_stop() { pids="" - printf "Stopping xencommons" + printf "Stopping xencommons.\n" + printf "WARNING: Not stopping xenstored, as it cannot be restarted.\n" rc_pid=$(check_pidfile ${XENBACKENDD_PIDFILE} ${SBINDIR}/xenbackendd) pids="$pids $rc_pid" rc_pid=$(check_pidfile ${XENCONSOLED_PIDFILE} ${SBINDIR}/xenconsoled) pids="$pids $rc_pid" - rc_pid=$(check_pidfile ${XENSTORED_PIDFILE} ${SBINDIR}/xenstored) - pids="$pids $rc_pid" kill -${sig_stop:-TERM} $pids wait_for_pids $pids - - printf ".\n" } xen_status() |