#! /bin/bash # $Id$ # Copyright (C) 2003 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 # the Free Software Foundation; version 2 of the License. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. : ${UTIL_VSERVER_VARS:=$(dirname $0)/util-vserver-vars} test -e "$UTIL_VSERVER_VARS" || { echo "Can not find util-vserver installation; aborting..." exit 1 } . "$UTIL_VSERVER_VARS" . "$_LIB_FUNCTIONS" vserver=$1 cmd=$2 allow_legacy= case "$vserver" in ./*) VSERVER_DIR=`pwd`/$vserver;; /*) VSERVER_DIR=$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 } if test -e "$VSERVER_DIR"/name; then read VSERVER_NAME <"$VSERVER_DIR"/name else VSERVER_NAME=$(basename "$VSERVER_DIR") fi . $PKGLIBDIR/vserver.functions case "$2" in 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