aboutsummaryrefslogtreecommitdiffstats
path: root/tools/hotplug
diff options
context:
space:
mode:
authorRoger Pau Monne <roger.pau@entel.upc.edu>2011-07-15 18:22:03 +0100
committerRoger Pau Monne <roger.pau@entel.upc.edu>2011-07-15 18:22:03 +0100
commit2e8644e1d90b08330bc72661f11600ba9ef980e4 (patch)
tree9e032c9b27b63efb98d243738dfd3ae36a508e01 /tools/hotplug
parentc57de7d5ae7dd3fd6417f814c6a15dc1f7ded13c (diff)
downloadxen-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/xencommons45
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()