Ian Jackson
2011-Mar-07 16:21 UTC
[Xen-devel] [PATCH, v2, 4.0] 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@eu.citrix.com>
CC: Ian Campbell <Ian.Campbell@eu.citrix.com>
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
+XENCOMMONS_INITD = init.d/xencommons
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) $(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 0b16e1d60871 tools/hotplug/Linux/init.d/xencommons
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/hotplug/Linux/init.d/xencommons Thu Feb 03 11:49:09 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@eu.citrix.com>
+#
+# 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@lists.xensource.com
http://lists.xensource.com/xen-devel
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
Ian Campbell
2011-Mar-08 10:24 UTC
Re: [Xen-devel] [PATCH, v2, 4.0] tools: provide startup script for libxl
On Mon, 2011-03-07 at 16:21 +0000, Ian Jackson wrote:> 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@eu.citrix.com>Looks good, thanks. Acked-by: Ian Campbell <Ian.Campbell@eu.citrix.com>> > 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 > +XENCOMMONS_INITD = init.d/xencommons > 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) $(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 0b16e1d60871 tools/hotplug/Linux/init.d/xencommons > --- /dev/null Thu Jan 01 00:00:00 1970 +0000 > +++ b/tools/hotplug/Linux/init.d/xencommons Thu Feb 03 11:49:09 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@eu.citrix.com> > +# > +# 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@lists.xensource.com > http://lists.xensource.com/xen-devel >_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Ian Jackson
2011-Mar-10 18:13 UTC
Re: [Xen-devel] [PATCH, v2, 4.0] tools: provide startup script for libxl
Ian Campbell writes ("Re: [Xen-devel] [PATCH, v2, 4.0] tools: provide
startup script for libxl"):> On Mon, 2011-03-07 at 16:21 +0000, Ian Jackson wrote:
> > 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.
...> > Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
>
> Looks good, thanks.
Thanks.
> Acked-by: Ian Campbell <Ian.Campbell@eu.citrix.com>
Keir, would you apply the patch to 4.0 please ?
Thanks,
Ian.
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel