- added legacy support
authorEnrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
Fri, 17 Oct 2003 00:43:51 +0000 (00:43 +0000)
committerEnrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
Fri, 17 Oct 2003 00:43:51 +0000 (00:43 +0000)
- added support for suexec,restart,condrestart,exec,chkconfig,enter,running
  and status

git-svn-id: http://svn.linux-vserver.org/svn/util-vserver/trunk@188 94cd875c-1c1d-0410-91d2-eb244daf1a30

util-vserver/scripts/vserver

index 764e800..5991505 100755 (executable)
@@ -27,12 +27,27 @@ test -e "$UTIL_VSERVER_VARS" || {
 vserver=$1
 cmd=$2
 
+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
+    do_legacy=
+    test ! -e "$VSERVER_DIR/legacy" || 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"
+       exec "$_VSERVER_LEGACY" "$@"
+    }
+fi
+
 test -d "$VSERVER_DIR" || {
     echo "Can not find vserver-setup"
     exit 1
@@ -46,7 +61,46 @@ fi
 
 . $PKGLIBDIR/vserver.functions
 case "$2" in
-    start|stop)
-       . $PKGLIBDIR/vserver.$2
+    start|stop|suexec)
+       shift 2
+       . $PKGLIBDIR/vserver.$cmd
+       ;;
+    restart)
+       "$0" "$1" stop
+       exec "$0" "$1" start
+       ;;
+    condrestart)
+       test ! isVserverRunning "$VSERVER_DIR" || exec "$0" "$1" restart
+       ;;
+    exec)
+       shift 2
+       exec "$0" "$vserver" suexec root "$@"
+       ;;
+    chkconfig)
+       shift 2
+       exec "$0" "$vserver" suexec root chkconfig "$@"
+       ;;
+    enter)
+       getEnterShell "$VSERVER_DIR"
+       exec "$0" "$1" suexec root "${ENTER_SHELL[@]}"
+       ;;
+    running|status)
+       if getVserverStatus "$VSERVER_DIR" ctx procnum; then
+           echo $"Vserver '$1' is running at context '$ctx'"
+
+           if test "$2" = status; then
+               echo    $"Number of processes:" $procnum
+               echo -n $"Uptime:              "
+               "$_FILETIME" "$VSERVER_DIR/run"
+           fi
+           exit 0
+       else
+           echo $"Vserver '$1' is not running"
+           exit 1
+       fi
+       ;;
+    *)
+       echo $"Usage: $0 {start|stop|suexec|restart|condrestart|exec|enter|chkconfig|running|status}"
+       exit 2
        ;;
 esac