[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] init script v2
Fixed by 21552. K. On 07/06/2010 16:53, "Dulloor" <dulloor@xxxxxxxxx> wrote: > Looks like the changeset 21549 is incomplete. > > -dulloor > > On Mon, Jun 7, 2010 at 8:49 AM, Dulloor <dulloor@xxxxxxxxx> wrote: >> 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%02hh >>> x%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 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |