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

Re: [Xen-devel] [PATCH, 4.0] tools: provide startup script for libxl



On Thu, 2011-03-03 at 17:05 +0000, Ian Jackson wrote:
> Ian Jackson writes ("[Xen-devel] [PATCH, 4.0] tools: provide startup script 
> for libxl"):
> > In Xen 4.0 there is no /etc/init.d/xencommons (and we do not want to
> > backport the refactoring of /etc/init.d/xend).  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 "xenlightdaemons" 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 (from testing.git 78c59993ab536b8c39c5a00a).  The user
> > will still have to add appropriate rc links, and only a script for
> > Linux is provided.
> > 
> > Testing: I have done a build test on patch and the script does end up
> > in dist/install/etc/init.d/xenlightdaemons; the script itself is
> > tested as part of my automatic test system.
> > 
> > Signed-off-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
> 
> I have had a private email from Stefano, so
> 
> Acked-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
> 
> Keir, would you apply this to 4.0 please ?

I was confused by this for a bit. I think it is well worth a comment
that this is the equivalent of the xencommons init script in 4.1+

Why does it get a different name in 4.0 anyway?

Ian.
> 
> Thanks,
> Ian.
> 
> diff -r 0b16e1d60871 tools/hotplug/Linux/Makefile
> --- a/tools/hotplug/Linux/Makefile    Wed Jan 26 09:05:53 2011 +0000
> +++ b/tools/hotplug/Linux/Makefile    Thu Feb 03 11:49:09 2011 +0000
> @@ -4,6 +4,7 @@ include $(XEN_ROOT)/tools/Rules.mk
>  # Init scripts.
>  XEND_INITD = init.d/xend
>  XEND_SYSCONFIG = init.d/sysconfig.xend
> +XENLIGHTDAEMONS_INITD = init.d/xenlightdaemons
>  XENDOMAINS_INITD = init.d/xendomains
>  XENDOMAINS_SYSCONFIG = init.d/sysconfig.xendomains
>  
> @@ -65,6 +66,7 @@ install-initd:
>       [ -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) $(XENLIGHTDAEMONS_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 0b16e1d60871 tools/hotplug/Linux/init.d/xenlightdaemons
> --- /dev/null Thu Jan 01 00:00:00 1970 +0000
> +++ b/tools/hotplug/Linux/init.d/xenlightdaemons      Thu Feb 03 11:49:09 
> 2011 +0000
> @@ -0,0 +1,81 @@
> +#!/bin/bash
> +#
> +# xenlightdaemons    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-devel mailing list
> Xen-devel@xxxxxxxxxxxxxxxxxxx
> http://lists.xensource.com/xen-devel



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


 


Rackspace

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