X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=scripts%2Fvserver-wrapper;fp=scripts%2Fvserver-wrapper;h=ccbd2e134813f488b19b2f924ea2956170b8bcab;hb=8cf13bb177d92c93eb73dc8939777150536c2d00;hp=0000000000000000000000000000000000000000;hpb=6bf3f95de36c804c97716b2d0bdf10680c559044;p=util-vserver.git diff --git a/scripts/vserver-wrapper b/scripts/vserver-wrapper new file mode 100755 index 0000000..ccbd2e1 --- /dev/null +++ b/scripts/vserver-wrapper @@ -0,0 +1,96 @@ +#! /bin/bash + +# Copyright (C) 2004 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:=/usr/lib/util-vserver/util-vserver-vars} +test -e "$UTIL_VSERVER_VARS" || { + echo $"Can not find util-vserver installation (the file '$UTIL_VSERVER_VARS' would be expected); aborting..." >&2 + exit 1 +} +. "$UTIL_VSERVER_VARS" + +test -n "$MARK" || MARK=default +: ${LOCKFILE:=vservers-$MARK} +: ${NUMPARALLEL:=6} + + +if test -e /etc/init.d/functions; then + . /etc/init.d/functions + lockfile=/var/lock/subsys/$LOCKFILE +else + success() { echo .; } + passed() { echo .; } + failure() { echo ERROR; } + lockfile=/var/run/$LOCKFILE +fi + + +function _tellResult() +{ + local rc=$1 + case "$rc" in + (0) success;; + (2) passed; rc=0;; + (*) failure;; + esac + echo + return $rc +} + +function start() +{ + echo -n $"Starting vservers of type '$MARK'..." + $_START_VSERVERS -m "$MARK" -j "$NUMPARALLEL" --all --start + _tellResult $? + local rc=$? + test "$rc" -ne 0 || touch "$lockfile" + return $rc +} + +function stop() +{ + echo -n $"Stopping vservers of type '$MARK'..." + $_START_VSERVERS -m "$MARK" -j "$NUMPARALLEL" --all --stop + _tellResult $? + local rc=$? + $_RM -f "$lockfile" + return $rc +} + +function restart() +{ + stop + start +} + +case "$1" in + start|stop|restart) $1;; + condrestart) + test -f $lockfile && restart || : + ;; + status) + test -f $lockfile && { + echo $"vservers of type '$MARK' were started" + exit 0 + } + echo $"vservers of type '$MARK' are not started" + exit 1 + ;; + *) + echo "Usage: $0 {start|stop|restart|condrestart|status}" + exit 2 + ;; +esac