X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=util-vserver%2Fscripts%2Fstart-vservers;h=2844d47461dfe0595736e71249b992dca4eb54db;hb=95cf3519da76f335389cd7a18d0090b59f81f2e7;hp=960ee68110976fe2ba295ec43fa722a419a30afa;hpb=8d9ef2531945fa907484af62431ab5ff8a74f7c1;p=util-vserver.git diff --git a/util-vserver/scripts/start-vservers b/util-vserver/scripts/start-vservers index 960ee68..2844d47 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,29 +101,35 @@ 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) trap "rm -rf $makedir $resultfile $passedfile" EXIT -defaulttty="$CONFDIR/.defaults/apps/init/tty" -test -c "$defaulttty" || defaulttty=$(tty) -test -c "$defaulttty" || defaulttty=/dev/null - test_cmd=false case "$OPTION_FLAVOR" in start) test_cmd="${_VSERVER} --silent '\$*' status";; stop) test_cmd="! ${_VSERVER} --silent '\$*' status";; esac - { cat <>$passedfile ; \ -${TAB}$_VSERVER --sync ${OPTION_DEBUG:+--debug} "\$*" ${OPTION_FLAVOR} >\$(TTY) 2>\$(TTY) <\$(TTY) ; } +${TAB}$_VSERVER --defaulttty --sync ${OPTION_DEBUG:+--debug} "\$*" ${OPTION_FLAVOR}; } ${TAB}echo -n '.' >>$okfile ${TAB}@touch "\$@" EOF @@ -135,17 +141,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" @@ -153,9 +148,6 @@ for i in "${vservers[@]}"; do cat "$d"/depends done | sort -u | while read vserver; do d=$CONFDIR/$vserver/apps/init - test ! -e $d/tty || { - echo -e ".$vserver.stamp:\tTTY=$d/tty" >>$makedir/Makefile - } case "$OPTION_FLAVOR" in start) @@ -185,4 +177,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