[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] init script v2
I pulled the latest tip (from staging) and I get this error in compiling tools : ../../../tools/cross-install -m0755 -p init.d/xencommons //etc/init.d install: cannot stat `init.d/xencommons': No such file or directory make[5]: *** [install-initd] Error 1 I can't find xencommons in the repo. Is this patch applied correctly ? -dulloor On Mon, Jun 7, 2010 at 5:03 AM, Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> wrote: > Hi all, > second version of the init scripts for xl: now the init script is called > xencommons and, as the name suggests, it is a common script between xl > and xend because it is used to start xenconsoled, xenstored and > xenbackendd and the initialization of these three daemons has been removed > from xend. > The global xen_toolstack=xl/xend variable has been removed. > Regarding the network setup, I made the vif scripts follow the same > pattern as the other scripts in xen-backend: a new script called > vif-setup is executed unconditionally. vif-setup is going to do the > right thing depending on the value of the environmental variable > "script" (same technique used before), defaulting to vif-bridge. > In the common scenario the toolstack doesn't need to set the variable "script" > because vif-bridge is going to be called anyway. > There is no global network script to setup the network bridges with xl, so if > you are using xl without xend, you need to manually configure the bridges > using > your distro network setup, or, if you are lazy, you can just add something > like: > > /etc/xen/scripts/network-bridge start > > to your rc.local. > > > Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> > > --- > > diff -r c514d69c71d8 tools/hotplug/Linux/Makefile > --- a/tools/hotplug/Linux/Makefile Fri Jun 04 11:39:06 2010 +0100 > +++ b/tools/hotplug/Linux/Makefile Mon Jun 07 12:46:52 2010 +0100 > @@ -3,15 +3,18 @@ > > # Init scripts. > XEND_INITD = init.d/xend > -XEND_SYSCONFIG = init.d/sysconfig.xend > XENDOMAINS_INITD = init.d/xendomains > XENDOMAINS_SYSCONFIG = init.d/sysconfig.xendomains > > +XENCOMMONS_INITD = init.d/xencommons > +XENCOMMONS_SYSCONFIG = init.d/sysconfig.xencommons > + > # Xen script dir and scripts to go there. > XEN_SCRIPTS = network-bridge vif-bridge > XEN_SCRIPTS += network-route vif-route > XEN_SCRIPTS += network-nat vif-nat > XEN_SCRIPTS += vif2 > +XEN_SCRIPTS += vif-setup > XEN_SCRIPTS += block > XEN_SCRIPTS += block-enbd block-nbd > XEN_SCRIPTS += blktap > @@ -64,9 +67,10 @@ > [ -d $(DESTDIR)$(CONFIG_DIR)/init.d ] || $(INSTALL_DIR) > $(DESTDIR)$(CONFIG_DIR)/init.d > [ -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) $(XENDOMAINS_INITD) $(DESTDIR)$(CONFIG_DIR)/init.d > $(INSTALL_PROG) $(XENDOMAINS_SYSCONFIG) > $(DESTDIR)$(CONFIG_DIR)/sysconfig/xendomains > + $(INSTALL_PROG) $(XENCOMMONS_INITD) $(DESTDIR)$(CONFIG_DIR)/init.d > + $(INSTALL_PROG) $(XENCOMMONS_SYSCONFIG) > $(DESTDIR)$(CONFIG_DIR)/sysconfig/xencommons > > .PHONY: install-scripts > install-scripts: > diff -r c514d69c71d8 tools/hotplug/Linux/init.d/sysconfig.xencommons > --- /dev/null Thu Jan 01 00:00:00 1970 +0000 > +++ b/tools/hotplug/Linux/init.d/sysconfig.xencommons Mon Jun 07 12:46:52 > 2010 +0100 > @@ -0,0 +1,11 @@ > +# Log xenconsoled messages (cf xl dmesg) > +#XENCONSOLED_TRACE=[none|guest|hv|all] > + > +# Log xenstored messages > +#XENSTORED_TRACE=[yes|on|1] > + > +# Running xenstored on XENSTORED_ROOTDIR > +#XENSTORED_ROOTDIR=/var/lib/xenstored > + > +# Running xenbackendd in debug mode > +#XENBACKENDD_DEBUG=[yes|on|1] > diff -r c514d69c71d8 tools/hotplug/Linux/init.d/sysconfig.xend > --- a/tools/hotplug/Linux/init.d/sysconfig.xend Fri Jun 04 11:39:06 2010 +0100 > +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 > @@ -1,11 +0,0 @@ > -# Log xenconsoled messages (cf xm dmesg) > -#XENCONSOLED_TRACE=[none|guest|hv|all] > - > -# Log xenstored messages > -#XENSTORED_TRACE=[yes|on|1] > - > -# Running xenstored on XENSTORED_ROOTDIR > -#XENSTORED_ROOTDIR=/var/lib/xenstored > - > -# Running xenbackendd in debug mode > -#XENBACKENDD_DEBUG=[yes|on|1] > diff -r c514d69c71d8 tools/hotplug/Linux/init.d/xencommons > --- /dev/null Thu Jan 01 00:00:00 1970 +0000 > +++ b/tools/hotplug/Linux/init.d/xencommons Mon Jun 07 12:46:52 2010 +0100 > @@ -0,0 +1,87 @@ > +#!/bin/bash > +# > +# xencommons Script to start and stop xenstored and xenconsoled > +# > +# Author: Ian Jackson <ian.jackson@xxxxxxxxxxxxx> > +# > +# chkconfig: 2345 > +# description: Starts and stops xenstored and xenconsoled > +### 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/xend > +### END INIT INFO > + > +test -f /etc/sysconfig/xencommons && . /etc/sysconfig/xencommons > + > +XENCONSOLED_PIDFILE=/var/run/xenconsoled.pid > +shopt -s extglob > + > +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 () { > + if ! `xenstore-read -s / >/dev/null 2>&1` > + then > + test -z "$XENSTORED_ROOTDIR" || > XENSTORED_ROOTDIR="/var/lib/xenstored" > + rm -f "$XENSTORED_ROOTDIR"/tdb* &>/dev/null > + test -z "$XENSTORED_TRACE" || XENSTORED_ARGS=" -T > /var/log/xen/xenstored-trace.log" > + xenstored --pid-file=/var/run/xenstore.pid $XENSTORED_ARGS > + xenstore-write "/local/domain/0/name" "Domain-0" > + fi > + > + test -z "$XENCONSOLED_TRACE" || XENCONSOLED_ARGS=" -T > /var/log/xen/xenstored-trace.log" > + xenconsoled --pid-file=$XENCONSOLED_PIDFILE $XENCONSOLED_ARGS > + test -z "$XENBACKENDD_DEBUG" || XENBACKENDD_ARGS="-d" > + test "`uname`" != "NetBSD" || xenbackendd $XENBACKENDD_ARGS > +} > +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 $? > diff -r c514d69c71d8 tools/hotplug/Linux/init.d/xend > --- a/tools/hotplug/Linux/init.d/xend Fri Jun 04 11:39:06 2010 +0100 > +++ b/tools/hotplug/Linux/init.d/xend Mon Jun 07 12:46:52 2010 +0100 > @@ -20,20 +20,6 @@ > ### END INIT INFO > > 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 -qs "control_d" /proc/xen/capabilities ; then > - exit 0 > -fi > > # Wait for Xend to be up > function await_daemons_up > @@ -53,10 +39,6 @@ > start) > mkdir -p /var/lock/subsys > touch /var/lock/subsys/xend > - test -z "$XENSTORED_ROOTDIR" || export XENSTORED_ROOTDIR > - test -z "$XENCONSOLED_TRACE" || export XENCONSOLED_TRACE > - [[ "$XENSTORED_TRACE" == @(yes|on|1) ]] && export XENSTORED_TRACE > - [[ "$XENBACKENDD_DEBUG" == @(yes|on|1) ]] && export XENBACKENDD_DEBUG > xend start > await_daemons_up > ;; > diff -r c514d69c71d8 tools/hotplug/Linux/init.d/xendomains > --- a/tools/hotplug/Linux/init.d/xendomains Fri Jun 04 11:39:06 2010 +0100 > +++ b/tools/hotplug/Linux/init.d/xendomains Mon Jun 07 12:46:52 2010 +0100 > @@ -28,6 +28,11 @@ > # boots / shuts down. > ### END INIT INFO > > +if ! `xm list &> /dev/null` > +then > + exit 0 > +fi > + > # Correct exit code would probably be 5, but it's enough > # if xend complains if we're not running as privileged domain > if ! [ -e /proc/xen/privcmd ]; then > diff -r c514d69c71d8 tools/hotplug/Linux/vif-setup > --- /dev/null Thu Jan 01 00:00:00 1970 +0000 > +++ b/tools/hotplug/Linux/vif-setup Mon Jun 07 12:46:52 2010 +0100 > @@ -0,0 +1,9 @@ > +#!/bin/bash > + > +if test "$script" > +then > + exec "$script" $* > +else > + exec /etc/xen/scripts/vif-bridge $* > +fi > + > diff -r c514d69c71d8 tools/hotplug/Linux/xen-backend.rules > --- a/tools/hotplug/Linux/xen-backend.rules Fri Jun 04 11:39:06 2010 +0100 > +++ b/tools/hotplug/Linux/xen-backend.rules Mon Jun 07 12:46:52 2010 +0100 > @@ -2,8 +2,8 @@ > SUBSYSTEM=="xen-backend", KERNEL=="vbd*", RUN+="/etc/xen/scripts/block > $env{ACTION}" > SUBSYSTEM=="xen-backend", KERNEL=="vtpm*", RUN+="/etc/xen/scripts/vtpm > $env{ACTION}" > SUBSYSTEM=="xen-backend", KERNEL=="vif2-*", RUN+="/etc/xen/scripts/vif2 > $env{ACTION}" > -SUBSYSTEM=="xen-backend", KERNEL=="vif-*", ACTION=="online", > RUN+="$env{script} online" > -SUBSYSTEM=="xen-backend", KERNEL=="vif-*", ACTION=="offline", > RUN+="$env{script} offline" > +SUBSYSTEM=="xen-backend", KERNEL=="vif-*", ACTION=="online", > RUN+="/etc/xen/scripts/vif-setup online" > +SUBSYSTEM=="xen-backend", KERNEL=="vif-*", ACTION=="offline", > RUN+="/etc/xen/scripts/vif-setup offline" > SUBSYSTEM=="xen-backend", KERNEL=="vscsi*", RUN+="/etc/xen/scripts/vscsi > $env{ACTION}" > SUBSYSTEM=="xen-backend", ACTION=="remove", > RUN+="/etc/xen/scripts/xen-hotplug-cleanup" > KERNEL=="evtchn", NAME="xen/%k" > diff -r c514d69c71d8 tools/libxl/libxl.h > --- a/tools/libxl/libxl.h Fri Jun 04 11:39:06 2010 +0100 > +++ b/tools/libxl/libxl.h Mon Jun 07 12:46:52 2010 +0100 > @@ -538,5 +538,17 @@ > uint32_t set); > int libxl_tmem_shared_auth(struct libxl_ctx *ctx, uint32_t domid, char* uuid, > int auth); > + > +/* common paths */ > +const char *libxl_sbindir_path(void); > +const char *libxl_bindir_path(void); > +const char *libxl_libexec_path(void); > +const char *libxl_libdir_path(void); > +const char *libxl_sharedir_path(void); > +const char *libxl_private_bindir_path(void); > +const char *libxl_xenfirmwaredir_path(void); > +const char *libxl_xen_config_dir_path(void); > +const char *libxl_xen_script_dir_path(void); > + > #endif /* LIBXL_H */ > > diff -r c514d69c71d8 tools/libxl/libxl_internal.h > --- a/tools/libxl/libxl_internal.h Fri Jun 04 11:39:06 2010 +0100 > +++ b/tools/libxl/libxl_internal.h Mon Jun 07 12:46:52 2010 +0100 > @@ -215,17 +215,6 @@ > > char *libxl_abs_path(struct libxl_ctx *ctx, char *s, const char *path); > > -/* libxl_paths.c */ > -const char *libxl_sbindir_path(void); > -const char *libxl_bindir_path(void); > -const char *libxl_libexec_path(void); > -const char *libxl_libdir_path(void); > -const char *libxl_sharedir_path(void); > -const char *libxl_private_bindir_path(void); > -const char *libxl_xenfirmwaredir_path(void); > -const char *libxl_xen_config_dir_path(void); > -const char *libxl_xen_script_dir_path(void); > - > #define XL_LOG_DEBUG XTL_DEBUG > #define XL_LOG_INFO XTL_INFO > #define XL_LOG_WARNING XTL_WARN > diff -r c514d69c71d8 tools/libxl/xl_cmdimpl.c > --- a/tools/libxl/xl_cmdimpl.c Fri Jun 04 11:39:06 2010 +0100 > +++ b/tools/libxl/xl_cmdimpl.c Mon Jun 07 12:46:52 2010 +0100 > @@ -42,6 +42,25 @@ > > #define UUID_FMT > "%02hhx%02hhx%02hhx%02hhx-%02hhx%02hhx-%02hhx%02hhx-%02hhx%02hhx-%02hhx%02hhx%02hhx%02hhx%02hhx%02hhx" > > +#define CHK_ERRNO( call ) ({ \ > + int chk_errno = (call); \ > + if (chk_errno < 0) { \ > + fprintf(stderr,"xl: fatal error: %s:%d: %s: %s\n", \ > + __FILE__,__LINE__, strerror(chk_errno), #call); \ > + exit(-ERROR_FAIL); \ > + } \ > + }) > + > +#define MUST( call ) ({ \ > + int must_rc = (call); \ > + if (must_rc < 0) { \ > + fprintf(stderr,"xl: fatal error: %s:%d, rc=%d: %s\n", \ > + __FILE__,__LINE__, must_rc, #call); \ > + exit(-must_rc); \ > + } \ > + }) > + > + > int logfile = 2; > > /* every libxl action in xl uses this same libxl context */ > @@ -240,7 +259,8 @@ > nic_info->mac[5] = 1 + (int) (0xff * (rand() / (RAND_MAX + 1.0))); > nic_info->ifname = NULL; > nic_info->bridge = "xenbr0"; > - nic_info->script = "/etc/xen/scripts/vif-bridge"; > + CHK_ERRNO( asprintf(&nic_info->script, "%s/vif-bridge", > + libxl_xen_script_dir_path()) ); > nic_info->nictype = NICTYPE_IOEMU; > } > > @@ -791,24 +811,6 @@ > xlu_cfg_destroy(config); > } > > -#define CHK_ERRNO( call ) ({ \ > - int chk_errno = (call); \ > - if (chk_errno) { \ > - fprintf(stderr,"xl: fatal error: %s:%d: %s: %s\n", \ > - __FILE__,__LINE__, strerror(chk_errno), #call); \ > - exit(-ERROR_FAIL); \ > - } \ > - }) > - > -#define MUST( call ) ({ \ > - int must_rc = (call); \ > - if (must_rc) { \ > - fprintf(stderr,"xl: fatal error: %s:%d, rc=%d: %s\n", \ > - __FILE__,__LINE__, must_rc, #call); \ > - exit(-must_rc); \ > - } \ > - }) > - > static void *xmalloc(size_t sz) { > void *r; > r = malloc(sz); > diff -r c514d69c71d8 tools/misc/xend > --- a/tools/misc/xend Fri Jun 04 11:39:06 2010 +0100 > +++ b/tools/misc/xend Mon Jun 07 12:46:52 2010 +0100 > @@ -73,48 +73,9 @@ > if os.fork() == 0: > os.execvp(daemon, (daemon,) + args) > > -def start_xenstored(): > - pidfname = "/var/run/xenstore.pid" > - try: > - f = open(pidfname, "a") > - try: > - fcntl.lockf(f, fcntl.LOCK_EX | fcntl.LOCK_NB) > - rootdir = os.getenv("XENSTORED_ROOTDIR") or "/var/lib/xenstored" > - for i in glob.glob(rootdir + "/tdb*"): > - try: > - os.unlink(i) > - except: > - pass > - os.unlink(pidfname) > - except: > - pass > - f.close() > - except: > - pass > - XENSTORED_TRACE = os.getenv("XENSTORED_TRACE") > - cmd = "xenstored --pid-file /var/run/xenstore.pid" > - if XENSTORED_TRACE: > - cmd += " -T /var/log/xen/xenstored-trace.log" > - s,o = commands.getstatusoutput(cmd) > - > -def start_consoled(): > - XENCONSOLED_TRACE = os.getenv("XENCONSOLED_TRACE") > - args = "" > - if XENCONSOLED_TRACE: > - args += "--log=" + XENCONSOLED_TRACE > - start_daemon("xenconsoled", args) > - > def start_blktapctrl(): > start_daemon("blktapctrl", "") > > -def start_xenbackendd(): > - XENBACKENDD_DEBUG = os.getenv("XENBACKENDD_DEBUG") > - args = "" > - if XENBACKENDD_DEBUG: > - args += "-d" > - if os.uname()[0] == 'NetBSD': > - start_daemon("xenbackendd", args) > - > def main(): > try: > check_logging() > @@ -127,15 +88,9 @@ > print 'usage: %s {start|stop|reload|restart}' % sys.argv[0] > elif sys.argv[1] == 'start': > if os.uname()[0] != "SunOS": > - start_xenstored() > - start_consoled() > - start_xenbackendd() > start_blktapctrl() > return daemon.start() > elif sys.argv[1] == 'trace_start': > - start_xenstored() > - start_consoled() > - start_xenbackendd() > start_blktapctrl() > return daemon.start(trace=1) > elif sys.argv[1] == 'stop': > @@ -143,9 +98,6 @@ > elif sys.argv[1] == 'reload': > return daemon.reloadConfig() > elif sys.argv[1] == 'restart': > - start_xenstored() > - start_consoled() > - start_xenbackendd() > start_blktapctrl() > return daemon.stop() or daemon.start() > elif sys.argv[1] == 'status': > > _______________________________________________ > 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
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |