X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=util-vserver%2Fscripts%2Fstart-vservers;h=672843729c2fe1e77fc9977fe3d8eda015f2d8bb;hb=5454ebed348c7647cc2f7777c4d012864a1e1f60;hp=f35bf1337251a193ac463bad4b2a1251d2d841f8;hpb=838cbe50cfda3bbfa6752f13c7cdd57ab2c90cc9;p=util-vserver.git diff --git a/util-vserver/scripts/start-vservers b/util-vserver/scripts/start-vservers index f35bf13..6728437 100755 --- a/util-vserver/scripts/start-vservers +++ b/util-vserver/scripts/start-vservers @@ -52,7 +52,27 @@ the GNU General Public License. This program has absolutely no warranty." function verifyVserver() { - true + 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 } ### @@ -114,9 +134,9 @@ while test $i -gt 0; do unset vservers[$i] done -makedir=$($_MKTEMPDIR /tmp/vserver-init.XXXXXX) -okfile=$($_MKTEMP /tmp/vserver-init.XXXXXX) -passedfile=$($_MKTEMP /tmp/vserver-init.XXXXXX) +makedir=$($_MKTEMPDIR vserver-init.XXXXXX) +okfile=$($_MKTEMP vserver-init.XXXXXX) +passedfile=$($_MKTEMP vserver-init.XXXXXX) trap "$_RM -rf $makedir $resultfile $passedfile" EXIT test_cmd=false @@ -137,6 +157,8 @@ EOF echo -ne "all:\t" for i in "${vservers[@]}"; do + verifyVserver "$i" || continue + echo -n ".$i.stamp " done echo @@ -148,24 +170,25 @@ for i in "${vservers[@]}"; do 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) + (start) if test -e "$d"/depends; then echo -ne ".$vserver.stamp:\t" cat "$d"/depends | while read dep; do - verifyVserver "$dep" + verifyVserver "$dep" "$d"/depends || continue echo -n ".$dep.stamp " done echo fi >>$makedir/Makefile ;; - stop) + (stop) if test -e "$d"/depends; then cat "$d"/depends | while read dep; do - verifyVserver "$dep" - echo -ne ".$dep.stamp:\t.$vserver.stamp" + verifyVserver "$dep" "$d"/depends || continue + echo -e ".$dep.stamp:\t.$vserver.stamp" done echo fi >>$makedir/Makefile