X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=scripts%2Fvserver;h=f4080a62410875dfd2153e620ed90f2ee6c83bf5;hb=39597d225451b1d13a2d1a7b3c83060019e799b0;hp=0a8457f8f8226e811babaf85942517c77a7199dc;hpb=35a3974ee427fb46d03e0d08899cedaf10512758;p=util-vserver.git diff --git a/scripts/vserver b/scripts/vserver index 0a8457f..f4080a6 100755 --- a/scripts/vserver +++ b/scripts/vserver @@ -37,7 +37,7 @@ $"Usage: $(basename $0) [-s|--sync] [-v|--verbose] [--silent] is the name of a vserver. Possible commands are: - start [--rescue] [ *] + start [--rescue [--rescue-init]] [ *] ... starts the specified vserver stop ... stops the specified vserver restart ... restarts the specified vserver; this is the subsequent @@ -153,7 +153,8 @@ SELF=( "$0" "${OPTION_ALL[@]}" ) vserver=$1 cmd=$2 -test "$cmd" != build || { shift 2; exec "$_VSERVER_BUILD" -n "$vserver" "$@"; } +test "$cmd" != build || { shift 2; exec $_VNAMESPACE --new -- \ + "$_VSERVER_BUILD" $OPTION_DEBUG -n "$vserver" "$@"; } allow_legacy= @@ -195,9 +196,19 @@ else VSERVER_NAME=$(basename "$VSERVER_DIR") fi +# Create a new namespace when starting the guest test "$2" != start -o -n "$OPTION_NONAMESPACE" || isAvoidNamespace "$VSERVER_DIR" || \ exec $_VNAMESPACE --new -- $_VSERVER ----nonamespace "${OPTIONS_ORIG[@]}" +# Enter the namespace early so we can test for files inside the guest +test "$2" != enter -a "$2" != stop || \ + test -n "$OPTION_NONAMESPACE" || isAvoidNamespace "$VSERVER_DIR" || \ + ! isVserverRunning "$VSERVER_DIR" || \ + exec $_VNAMESPACE --enter "$VSERVER_DIR" -- $_VSERVER ----nonamespace "${OPTIONS_ORIG[@]}" + +set_init_cwd +cd / + . $__PKGLIBDIR/vserver.functions case "$2" in (start|stop|delete) @@ -220,7 +231,8 @@ case "$2" in suexec 0 chkconfig "$@" ;; (enter) - OPTS_VCONTEXT_ENTER=( "${OPTS_VCONTEXT_ENTER[@]}" --vlogin ) + useVlogin && \ + OPTS_VCONTEXT_ENTER=( "${OPTS_VCONTEXT_ENTER[@]}" --vlogin ) getEnterShell "$VSERVER_DIR" suexec 0 "${ENTER_SHELL[@]}" ;; @@ -250,12 +262,14 @@ case "$2" in ;; (apt-get|apt-config|apt-cache) - export _APT_GET=$2 + export APT_GET=$2 shift 2 - exec $_VAPT_GET -- "$@" + exec $_VAPT_GET "$VSERVER_DIR" -- "$@" ;; + (rpm) - exec $_VRPM -- "$@" + shift 2 + exec $_VRPM "$VSERVER_DIR" -- "$@" ;; (status)