X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=scripts%2Fvserver;h=f169c44b2ab0f9c179ccd6b65ae8dd67d7237c52;hb=e6580882caefa10d48e7668d879b52d80b87a6b2;hp=84166e90c583d409e79431e632108d068208b200;hpb=0406a35b8764141410b8481da6956b400162d4bb;p=util-vserver.git diff --git a/scripts/vserver b/scripts/vserver index 84166e9..f169c44 100755 --- a/scripts/vserver +++ b/scripts/vserver @@ -57,6 +57,7 @@ Possible commands are: build * ... builds a new vserver from scratch + delete ... remove a vserver unify [-R] ... (de)unify vserver @@ -152,7 +153,7 @@ 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" -n "$vserver" "$@"; } allow_legacy= @@ -194,12 +195,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[@]}" + . $__PKGLIBDIR/vserver.functions case "$2" in - (start|stop) + (start|stop|delete) shift 2 . $__PKGLIBDIR/vserver.$cmd ;; @@ -212,15 +220,16 @@ case "$2" in ;; (exec) shift 2 - suexec root "$@" + suexec 0 "$@" ;; (chkconfig) shift 2 - suexec root chkconfig "$@" + suexec 0 chkconfig "$@" ;; (enter) + OPTS_VCONTEXT_ENTER=( "${OPTS_VCONTEXT_ENTER[@]}" --vlogin ) getEnterShell "$VSERVER_DIR" - suexec root "${ENTER_SHELL[@]}" + suexec 0 "${ENTER_SHELL[@]}" ;; (running) isVserverRunning "$VSERVER_DIR" @@ -248,12 +257,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) @@ -271,7 +282,7 @@ case "$2" in fi ;; (*) - echo $"Usage: $0 {start|stop|suexec|restart|condrestart|exec|enter|chkconfig|running|status}" >&2 + echo $"Usage: $0 {start|stop|suexec|restart|condrestart|exec|enter|chkconfig|running|status|delete}" >&2 exit 2 ;; esac