X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=util-vserver%2Fscripts%2Fvserver;h=006e7f7840fab57621f13ed2a54ceaa67e53f7f0;hb=75385100bedf6d457e88bc2bb942a6f0771b0e06;hp=47aa6f5d45d62fd17e7eab7e8f2129d7d08a39db;hpb=dfd7c5abfa53e81582a7ca7e88f6ab82dda39085;p=util-vserver.git diff --git a/util-vserver/scripts/vserver b/util-vserver/scripts/vserver index 47aa6f5..006e7f7 100755 --- a/util-vserver/scripts/vserver +++ b/util-vserver/scripts/vserver @@ -1,7 +1,7 @@ #! /bin/bash # $Id$ -# Copyright (C) 2003 Enrico Scholz +# Copyright (C) 2003,2004,2005 Enrico Scholz # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -37,10 +37,9 @@ $"Usage: $(basename $0) [-s|--sync] [-v|--verbose] [--silent] is the name of a vserver. Possible commands are: - start [--nodeps] * + start [--rescue] [ *] ... starts the specified vserver - stop [--nodeps] * - ... stops the specified vserver + stop ... stops the specified vserver restart ... restarts the specified vserver; this is the subsequent execution of a synchronized 'stop' and a 'start' condrestart ... restarts the vserver when it is running already @@ -91,7 +90,7 @@ function showVersion() $"vserver $PACKAGE_VERSION -- manages the state of vservers This program is part of $PACKAGE_STRING -Copyright (C) 2003 Enrico Scholz +Copyright (C) 2003,2004,2005 Enrico Scholz This program is free software; you may redistribute it under the terms of the GNU General Public License. This program has absolutely no warranty." exit 0 @@ -99,7 +98,7 @@ the GNU General Public License. This program has absolutely no warranty." function suexec() { - . $PKGLIBDIR/vserver.suexec + . $__PKGLIBDIR/vserver.suexec } function restart() @@ -119,7 +118,7 @@ function msg() set +e OPTIONS_ORIG=( "$@" ) -tmp=$(getopt -o +sv --long nonamespace,--nonamespace,--insecure,help,debug,version,sync,verbose,silent -n "$0" -- "$@") || exit 1 +tmp=$(getopt -o +sv --long nonamespace,--nonamespace,--insecure,defaulttty,help,debug,version,sync,verbose,silent -n "$0" -- "$@") || exit 1 eval set -- "$tmp" OPTION_FORCE_SYNC= @@ -128,6 +127,7 @@ OPTION_SILENT= OPTION_DEBUG= OPTION_NONAMESPACE= OPTION_INSECURE= +OPTION_DEFAULTTTY= while true; do case "$1" in @@ -138,6 +138,7 @@ while true; do (-s|--sync) OPTION_FORCE_SYNC=$1;; (--silent) OPTION_SILENT=$1;; (----nonamespace)OPTION_NONAMESPACE=$1;; + (--defaulttty) OPTION_DEFAULTTTY=$1;; (----insecure) OPTION_INSECURE=1;; (--) shift; break;; (*) echo $"vserver: internal error; arg=='$1'" >&2; exit 1;; @@ -145,7 +146,7 @@ while true; do shift done -OPTION_ALL=( $OPTION_SILENT $OPTION_VERBOSE $OPTION_DEBUG ) +OPTION_ALL=( $OPTION_SILENT $OPTION_VERBOSE $OPTION_DEBUG $OPTION_DEFAULTTTY ) SELF=( "$0" "${OPTION_ALL[@]}" ) vserver=$1 @@ -159,15 +160,15 @@ allow_legacy= case "$vserver" in (./*) VSERVER_DIR=`pwd`/$vserver;; (/*) VSERVER_DIR=$vserver;; - (*) VSERVER_DIR=$CONFDIR/$vserver + (*) VSERVER_DIR=$__CONFDIR/$vserver allow_legacy=1 ;; esac -if test "$allow_legacy"; then +if test -n "$allow_legacy"; then do_legacy= test ! -e "$VSERVER_DIR/legacy" || do_legacy=1 - test -d "$VSERVER_DIR" -o ! -e "$CONFDIR/$vserver.conf" || do_legacy=1 + 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" >&2 @@ -177,9 +178,14 @@ fi test -d "$VSERVER_DIR" || { echo $"\ -Can not find vserver-setup; please make sure that the vserver configuration -is located at $VSERVER_DIR/." - exit 1 +Can not find a vserver-setup at '$VSERVER_DIR/'. + +Possible solutions: +* fix the spelling of the '$vserver' vserver name +* read 'vserver $vserver build --help' about ways to create a new vserver +* see 'vserver --help' for the syntax of this command +" + exit 5 } >&2 if test -e "$VSERVER_DIR"/name; then @@ -188,14 +194,14 @@ else VSERVER_NAME=$(basename "$VSERVER_DIR") fi -test "$2" != start -o "$OPTION_NONAMESPACE" || isAvoidNamespace "$VSERVER_DIR" || \ +test "$2" != start -o -n "$OPTION_NONAMESPACE" || isAvoidNamespace "$VSERVER_DIR" || \ exec $_VNAMESPACE --new -- $_VSERVER ----nonamespace "${OPTIONS_ORIG[@]}" -. $PKGLIBDIR/vserver.functions +. $__PKGLIBDIR/vserver.functions case "$2" in (start|stop) shift 2 - . $PKGLIBDIR/vserver.$cmd + . $__PKGLIBDIR/vserver.$cmd ;; (suexec|restart) shift 2 @@ -224,7 +230,12 @@ case "$2" in shift 2 exec $_VUNIFY "$@" "$vserver" ;; - + + (hashify) + shift 2 + exec $_VHASHIFY "$@" "$vserver" + ;; + (pkg) shift 2 exec $_VPKG "$vserver" "$@" @@ -233,7 +244,7 @@ case "$2" in (pkgmgmt) op=$3 shift 3 - exec $_PKGMGMT ${op:+--$op} "$@" -- "$vserver" + exec $_VNAMESPACE --new -- $_PKGMGMT ${op:+--$op} "$@" -- "$vserver" ;; (apt-get|apt-config|apt-cache) @@ -255,8 +266,8 @@ case "$2" in fi exit 0 else - msg $"Vserver '$vserver' is not running" - exit 1 + msg $"Vserver '$vserver' is stopped" + exit 3 fi ;; (*)