X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=scripts%2Fstart-vservers;fp=scripts%2Fstart-vservers;h=0000000000000000000000000000000000000000;hb=db5ef3f969fc6ad34aeb5903e44d0049b2e50791;hp=f02d3a3ded78b10e6ba56eb5a29d262668f1e418;hpb=95e2774070e989fe9cf9f48dae5fa054e55e2a3e;p=util-vserver.git diff --git a/scripts/start-vservers b/scripts/start-vservers deleted file mode 100755 index f02d3a3..0000000 --- a/scripts/start-vservers +++ /dev/null @@ -1,206 +0,0 @@ -#! /bin/bash - -# Copyright (C) 2004 Enrico Scholz -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -# Usage: start-vservers [-c ] [-m ] [-j ] [--start|--stop|--status|--condrestart|--restart] [--test] [--all] [--debug] -- + - -: ${UTIL_VSERVER_VARS:=/usr/lib/util-vserver/util-vserver-vars} -test -e "$UTIL_VSERVER_VARS" || { - echo $"Can not find util-vserver installation (the file '$UTIL_VSERVER_VARS' would be expected); aborting..." >&2 - exit 1 -} -. "$UTIL_VSERVER_VARS" -. "$_LIB_FUNCTIONS" - -### Some local functions - -function showHelp() -{ - echo \ -$"Usage: $(basename $0) [-c ] [-m ] [-j + - -Please report bugs to $PACKAGE_BUGREPORT" - exit 0 -} - - -function showVersion() -{ - echo \ -$"start-vserver $PACKAGE_VERSION -- starts/stops a bunch of vservers -This program is part of $PACKAGE_STRING - -Copyright (C) 2004 Enrico Scholz -This program is free software; you may redistribute it under the terms of -the GNU General Public License. This program has absolutely no warranty." - exit 0 -} - -function verifyVserver() -{ - local xtra="${2:+ mentioned in '$2'}" - case x$1 in - (x\#*|x) - return 1;; # skip empty and comment lines - ($__CONFDIR/*) - warning "This version of 'start-vservers' supports only short vserver names; try to remove the '$__CONFDIR' from '$1'$xtra" - return 1 - ;; - (/*) - warning "This version of 'start-vservers' supports only short vserver names; '$1'$xtra is not possible" - return 1 - ;; - (*) - $_VSERVER_INFO -q "$__CONFDIR/$1" VDIR || { - warning "Vserver '$1'$xtra does not exist; skipping it..." - return 1; - } - ;; - esac - - return 0 -} - -### - -set +e - - -tmp=$(getopt -o c:j:m: \ - --long debug,help,version,start,stop,test,$VS_ALLVSERVERS_ARGS \ - -n "$0" -- "$@") || exit 1 -eval set -- "$tmp" - -declare -a tmp_vservers=() -declare -r TAB=$(echo -en "\t") -OPTION_MARK= -OPTION_MARK_ANY=1 -OPTION_PARALLEL=99 -OPTION_DEBUG= -NOOPTION_DEBUG=1 - -case "`basename $0`" in - start-*) OPTION_FLAVOR=start;; - stop-*) OPTION_FLAVOR=stop;; - *) OPTION_FLAVOR=;; -esac - -while true; do - getAllVserversByArg tmp_vservers "$1" || \ - case "$1" in - (--help) showHelp $0 ;; - (--version) showVersion $0 ;; - (-c) CONFDIR=$2; shift;; - (-m) OPTION_MARK=$2; OPTION_MARK_ANY=; shift;; - (-j) OPTION_PARALLEL=$2; shift;; - (--start) OPTION_FLAVOR=start;; - (--stop) OPTION_FLAVOR=stop;; - (--debug) OPTION_DEBUG=1; NOOPTION_DEBUG=; set -x;; - (--) shift; break;; - (*) echo $"$0: internal error; arg=='$1'" >&2; exit 1;; - esac - shift -done - -test -n "$OPTION_FLAVOR" || { - echo "$0: unknown invocation method; aborting..." >&2 - exit 1 -} - -vservers=( "$@" "${tmp_vservers[@]}" ) - -orig_vservers=$vservers -i=${#vservers[*]} - -while test $i -gt 0; do - let --i - d=$__CONFDIR/${vservers[$i]}/apps/init - f=$d/mark - { test -n "$OPTION_MARK_ANY"; } || \ - { test -n "$OPTION_MARK" -a -r "$f" && grep -qx "$OPTION_MARK" "$f"; } || \ - { test -z "$OPTION_MARK" && test ! -e "$f"; } || \ - unset vservers[$i] -done - -makedir=$($_MKTEMPDIR vserver-init.XXXXXX) -okfile=$($_MKTEMP vserver-init.XXXXXX) -passedfile=$($_MKTEMP vserver-init.XXXXXX) -trap "$_RM -rf $makedir $okfile $passedfile" EXIT - -test_cmd=false -case "$OPTION_FLAVOR" in - start) test_cmd="${_VSERVER} --silent '\$*' status";; - stop) test_cmd="! ${_VSERVER} --silent '\$*' status";; -esac - -{ - cat <>$passedfile ; \ -${TAB}$_VSERVER --defaulttty --sync ${OPTION_DEBUG:+--debug} "\$*" ${OPTION_FLAVOR}; } -${TAB}echo -n '.' >>$okfile -${TAB}@touch "\$@" -EOF - - echo -ne "all:\t" - for i in "${vservers[@]}"; do - verifyVserver "$i" || continue - - echo -n ".$i.stamp " - done - echo -} >$makedir/Makefile - -for i in "${vservers[@]}"; do - d="$__CONFDIR/$i"/apps/init - echo "$i" - test -e "$d"/depends || continue - cat "$d"/depends -done | sort -u | while read vserver; do - verifyVserver "$vserver" || continue - d="$__CONFDIR/$vserver"/apps/init - - case "$OPTION_FLAVOR" in - (start) - if test -e "$d"/depends; then - echo -ne ".$vserver.stamp:\t" - cat "$d"/depends | while read dep; do - verifyVserver "$dep" "$d"/depends || continue - echo -n ".$dep.stamp " - done - echo - fi >>$makedir/Makefile - ;; - (stop) - if test -e "$d"/depends; then - cat "$d"/depends | while read dep; do - verifyVserver "$dep" "$d"/depends || continue - echo -e ".$dep.stamp:\t.$vserver.stamp" - done - echo - fi >>$makedir/Makefile - esac -done - -#cat $makedir/Makefile -make -k ${NOOPTION_DEBUG:+-s} ${OPTION_PARALLEL:+-j$OPTION_PARALLEL} -C $makedir - -test -s "$passedfile" || exit 0 -test -s "$okfile" || exit 1 -$_CMP -s "$passedfile" "$okfile" || exit 2 -exit 0