initial checkin
[util-vserver.git] / util-vserver / scripts / vserver
index 74709cc..817d835 100755 (executable)
@@ -20,7 +20,7 @@
 
 : ${UTIL_VSERVER_VARS:=/usr/lib/util-vserver/util-vserver-vars}
 test -e "$UTIL_VSERVER_VARS" || {
-    echo "Can not find util-vserver installation; aborting..."
+    echo "Can not find util-vserver installation; aborting..." >&2
     exit 1
 }
 . "$UTIL_VSERVER_VARS"
@@ -112,25 +112,29 @@ function restart()
 
 set +e
 
-tmp=$(getopt -o +sv --long help,debug,version,sync,verbose,silent -n "$0" -- "$@") || exit 1
+OPTIONS_ORIG=( "$@" )
+tmp=$(getopt -o +sv --long nonamespace,--nonamespace,help,debug,version,sync,verbose,silent -n "$0" -- "$@") || exit 1
 eval set -- "$tmp"
 
 OPTION_FORCE_SYNC=
 OPTION_VERBOSE=
 OPTION_SILENT=
 OPTION_DEBUG=
+OPTION_NONAMESPACE=
 
 while true; do
     case "$1" in
        --help)         showHelp $0 ;;
        --version)      showVersion ;;
-       --debug)        OPTION_DEBUG=$1; set -x; shift;;
-       -v|--verbose)   OPTION_VERBOSE=$1;    shift;;
-       -s|--sync)      OPTION_FORCE_SYNC=$1; shift;;
-       --silent)       OPTION_SILENT=$1;     shift;;
+       --debug)        OPTION_DEBUG=$1; set -x;;
+       -v|--verbose)   OPTION_VERBOSE=$1;;
+       -s|--sync)      OPTION_FORCE_SYNC=$1;;
+       --silent)       OPTION_SILENT=$1;;
+       ----nonamespace)OPTION_NONAMESPACE=$1;;
        --)             shift; break;;
-       *)              echo $"vserver: internal error; arg=='$1'"; exit 1;;
+       *)              echo $"vserver: internal error; arg=='$1'" >&2; exit 1;;
     esac
+    shift
 done
 
 OPTION_ALL=( $OPTION_SILENT $OPTION_VERBOSE $OPTION_DEBUG )
@@ -158,7 +162,7 @@ if test "$allow_legacy"; then
     test -d "$VSERVER_DIR" -o ! -e "$CONFDIR/$vserver.conf" || do_legacy=1
 
     test -z "$do_legacy" || {
-       echo $"WARNING: can not find configuration, assuming legacy method"
+       echo $"WARNING: can not find configuration, assuming legacy method" >&2
        exec "$_VSERVER_LEGACY" "$@"
     }
 fi
@@ -166,7 +170,7 @@ fi
 test -d "$VSERVER_DIR" || {
     echo "Can not find vserver-setup"
     exit 1
-}
+} >&2
 
 if test -e "$VSERVER_DIR"/name; then
     read VSERVER_NAME <"$VSERVER_DIR"/name
@@ -174,6 +178,9 @@ else
     VSERVER_NAME=$(basename "$VSERVER_DIR")
 fi
 
+test "$2" != start -o "$OPTION_NONAMESPACE" || isAvoidNamespace "$VSERVER_DIR" || \
+    exec $_VNAMESPACE --new -- $_VSERVER ----nonamespace "${OPTIONS_ORIG[@]}"
+
 . $PKGLIBDIR/vserver.functions
 case "$2" in
     start|stop)
@@ -238,7 +245,7 @@ case "$2" in
        fi
        ;;
     *)
-       echo $"Usage: $0 {start|stop|suexec|restart|condrestart|exec|enter|chkconfig|running|status}"
+       echo $"Usage: $0 {start|stop|suexec|restart|condrestart|exec|enter|chkconfig|running|status}" >&2
        exit 2
        ;;
 esac