X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=util-vserver%2Fscripts%2Fstart-vservers;h=89c23a25a88d9fd7f167748a73492dfbc35ba860;hb=7c6b9cbeda86c6b3422d4758f9dfdc95461b86fd;hp=6f977deec16d1c47211cbb9b941e193293d6cd63;hpb=39a35cdfe3d8ed5c3ad8040933a3afa5f6f82873;p=util-vserver.git diff --git a/util-vserver/scripts/start-vservers b/util-vserver/scripts/start-vservers index 6f977de..89c23a2 100755 --- a/util-vserver/scripts/start-vservers +++ b/util-vserver/scripts/start-vservers @@ -19,7 +19,7 @@ : ${UTIL_VSERVER_VARS:=/usr/lib/util-vserver/util-vserver-vars} test -e "$UTIL_VSERVER_VARS" || { - echo "Can not find util-vserver installation; aborting..." >&2 + echo $"Can not find util-vserver installation (the file '$UTIL_VSERVER_VARS' would be expected); aborting..." >&2 exit 1 } . "$UTIL_VSERVER_VARS" @@ -101,8 +101,22 @@ test -n "$OPTION_FLAVOR" || { vservers=( "$@" ) test -z "$OPTION_ALL" || getAllVservers vservers +orig_vservers=$vservers +i=${#vservers[*]} + +while test $i -gt 0; do + let --i + d=$CONFDIR/${vservers[$i]}/apps/init + f=$d/mark + { test "$OPTION_MARK" -a -r "$f" && grep -qx "$OPTION_MARK" "$f"; } || \ + { test -z "$OPTION_MARK" && test ! -e "$f"; } || \ + unset vservers[$i] +done + makedir=$(mktemp -d /tmp/vserver-init.XXXXXX) -trap "rm -rf $makedir" EXIT +okfile=$(mktemp /tmp/vserver-init.XXXXXX) +passedfile=$(mktemp /tmp/vserver-init.XXXXXX) +trap "rm -rf $makedir $resultfile $passedfile" EXIT defaulttty="$CONFDIR/.defaults/apps/init/tty" test -c "$defaulttty" || defaulttty=$(tty) @@ -114,13 +128,14 @@ case "$OPTION_FLAVOR" in stop) test_cmd="! ${_VSERVER} --silent '\$*' status";; esac - { cat <\$(TTY) 2>\$(TTY) <\$(TTY) +${TAB}$test_cmd || { \ +${TAB}echo -n '.' >>$passedfile ; \ +${TAB}$_VSERVER --sync ${OPTION_DEBUG:+--debug} "\$*" ${OPTION_FLAVOR} >\$(TTY) 2>\$(TTY) <\$(TTY) ; } +${TAB}echo -n '.' >>$okfile ${TAB}@touch "\$@" EOF @@ -131,17 +146,6 @@ EOF echo } >$makedir/Makefile -orig_vservers=$vservers -i=${#vservers[*]} - -while test $i -gt 0; do - let --i - d=$CONFDIR/${vservers[$i]}/apps/init - { test "$OPTION_MARK" && grep -sx "$OPTION_MARK" "$d"/mark; } || \ - { test -z "$OPTION_MARK" && test ! -e "$d"/mark; } || \ - unset vservers[$i] -done - for i in "${vservers[@]}"; do d=$CONFDIR/$i/apps/init echo "$i" @@ -177,3 +181,8 @@ 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