X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=util-vserver%2Fscripts%2Fstart-vservers;h=182a8ebcd8fe7932f90e167eada854579dcbfd16;hb=47c3ba10c63e6f9ec446c8477e53601ad00652ca;hp=6f977deec16d1c47211cbb9b941e193293d6cd63;hpb=39a35cdfe3d8ed5c3ad8040933a3afa5f6f82873;p=util-vserver.git diff --git a/util-vserver/scripts/start-vservers b/util-vserver/scripts/start-vservers index 6f977de..182a8eb 100755 --- a/util-vserver/scripts/start-vservers +++ b/util-vserver/scripts/start-vservers @@ -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