added VSHELPER & synchronization code
[util-vserver.git] / util-vserver / scripts / start-vservers
index 960ee68..182a8eb 100755 (executable)
@@ -101,6 +101,18 @@ 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)
 okfile=$(mktemp     /tmp/vserver-init.XXXXXX)
 passedfile=$(mktemp /tmp/vserver-init.XXXXXX)
@@ -116,7 +128,6 @@ case "$OPTION_FLAVOR" in
     stop)      test_cmd="! ${_VSERVER} --silent '\$*' status";;
 esac
 
-
 {
     cat <<EOF
 TTY = ${defaulttty}
@@ -135,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 -qx "$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"
@@ -185,4 +185,4 @@ 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
\ No newline at end of file
+exit 0