[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen-4.0-testing] tools: provide startup script for libxl



# HG changeset patch
# User Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
# Date 1299782388 0
# Node ID 7ddf29d515fbe339a236d76ca4328e3f3b8c9b8b
# Parent  61c7b61085c54d87d2495f74933b74360ff05187
tools: provide startup script for libxl

In Xen 4.0 there is no /etc/init.d/xencommons.  This means that in
most situations you don't get xenstored, and xl doesn't work, unless
you do something shonky like starting and then immediately stopping
xend.

To test xl, my automatic testing system therefore provides its own
init script to start xenstored and xenconsoled.  This script was
created by borrowing from /etc/init.d/xend and other init scripts in
various versions of xen.hg.

Here it is[1], as a new "xencommons" script.  The user will still have
to add appropriate rc links, and only a script for Linux is provided.

We do not want to backport the refactoring of /etc/init.d/xend, so
xend users should not enable this script.

[1] Copied from osstest.git#78c59993ab536b8c39c5a00a xenlightdaemons.

Signed-off-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
Acked-by: Ian Campbell <Ian.Campbell@xxxxxxxxxxxxx>
---


diff -r 61c7b61085c5 -r 7ddf29d515fb tools/hotplug/Linux/Makefile
--- a/tools/hotplug/Linux/Makefile      Tue Mar 08 16:25:02 2011 +0000
+++ b/tools/hotplug/Linux/Makefile      Thu Mar 10 18:39:48 2011 +0000
@@ -4,6 +4,7 @@
 # Init scripts.
 XEND_INITD = init.d/xend
 XEND_SYSCONFIG = init.d/sysconfig.xend
+XENCOMMONS_INITD = init.d/xencommons
 XENDOMAINS_INITD = init.d/xendomains
 XENDOMAINS_SYSCONFIG = init.d/sysconfig.xendomains
 
@@ -65,6 +66,7 @@
        [ -d $(DESTDIR)$(CONFIG_DIR)/sysconfig ] || $(INSTALL_DIR) 
$(DESTDIR)$(CONFIG_DIR)/sysconfig
        $(INSTALL_PROG) $(XEND_INITD) $(DESTDIR)$(CONFIG_DIR)/init.d
        $(INSTALL_PROG) $(XEND_SYSCONFIG) $(DESTDIR)$(CONFIG_DIR)/sysconfig/xend
+       $(INSTALL_PROG) $(XENCOMMONS_INITD) $(DESTDIR)$(CONFIG_DIR)/init.d
        $(INSTALL_PROG) $(XENDOMAINS_INITD) $(DESTDIR)$(CONFIG_DIR)/init.d
        $(INSTALL_PROG) $(XENDOMAINS_SYSCONFIG) 
$(DESTDIR)$(CONFIG_DIR)/sysconfig/xendomains
 
diff -r 61c7b61085c5 -r 7ddf29d515fb tools/hotplug/Linux/init.d/xencommons
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/hotplug/Linux/init.d/xencommons     Thu Mar 10 18:39:48 2011 +0000
@@ -0,0 +1,81 @@
+#!/bin/bash
+#
+# xencommons   Script to start and stop xenstored and xenconsoled
+#                     FOR USE WITH LIBXL, not xend
+#
+# Author:       Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
+#
+# chkconfig: 2345
+# description: Starts and stops the Xen control daemon.
+### BEGIN INIT INFO
+# Provides:          xenstored xenconsoled
+# Required-Start:    $syslog $remote_fs
+# Should-Start:
+# Required-Stop:     $syslog $remote_fs
+# Should-Stop:
+# Default-Start:     3 4 5
+# Default-Stop:      1
+# Default-Enabled:   yes
+# Short-Description: Start/stop xenstored and xenconsoled
+# Description:       Starts and stops the daemons neeeded for xl/libxenlight
+### END INIT INFO
+
+XENCONSOLED_PIDFILE=/var/run/xenconsoled.pid
+
+shopt -s extglob
+test -f /etc/sysconfig/xend && . /etc/sysconfig/xend
+
+if   test "x$1" = xstart && \
+     test -d /proc/xen && \
+   ! test -d /proc/xen/capabilities && \
+     grep '    xenfs$' /proc/filesystems >/dev/null && \
+   ! grep '^xenfs ' /proc/mounts >/dev/null;
+then
+       mount -t xenfs xenfs /proc/xen
+fi
+
+if ! grep -q "control_d" /proc/xen/capabilities ; then
+       exit 0
+fi
+
+do_start () {
+       test -z "$XENSTORED_ROOTDIR" || export XENSTORED_ROOTDIR
+       [[ "$XENSTORED_TRACE" == @(yes|on|1) ]] && export XENSTORED_TRACE
+       xenstore-read -s / >/dev/null 2>&1 || xenstored
+
+       test -z "$XENCONSOLED_TRACE" || XENCONSOLED_ARGS=" 
--log=$XENCONSOLED_TRACE"
+       xenconsoled --pid-file=$XENCONSOLED_PIDFILE $XENCONSOLED_ARGS 
$XENCONSOLED_OPTIONS
+}
+do_stop () {
+       if read 2>/dev/null <$XENCONSOLED_PIDFILE pid; then
+               kill $pid
+               while kill -9 $pid >/dev/null 2>&1; do sleep 0.1; done
+               rm -f $XENCONSOLED_PIDFILE
+       fi
+}
+
+case "$1" in
+  start)
+       do_start
+       ;;
+  status)
+        xenstore-read -s /
+       ;;
+  stop)
+       do_stop
+       ;;
+  reload)
+       echo >&2 'Reload not available; use force-reload'; exit 1
+       ;;
+  force-reload|restart)
+        do_stop
+       do_start
+       ;;
+  *)
+       # do not advertise unreasonable commands that there is no reason
+       # to use with this device
+       echo $"Usage: $0 {start|stop|status|restart|force-reload}"
+       exit 1
+esac
+
+exit $?

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.