X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=scripts%2Fvuserdel;h=778a0faa876401cf1a962e00d48c04d77054e070;hb=95e2774070e989fe9cf9f48dae5fa054e55e2a3e;hp=d24c47992ed06ef82a302af652eadbce1b926a19;hpb=03862e76d7fce9279e22b8a0ee15863041ce228e;p=util-vserver.git diff --git a/scripts/vuserdel b/scripts/vuserdel index d24c479..778a0fa 100755 --- a/scripts/vuserdel +++ b/scripts/vuserdel @@ -4,10 +4,10 @@ # # Copyright (c) 2004 The Trustees of Princeton University (Trustees). # -# $Id: vuserdel,v 1.4 2004/10/20 21:45:43 mef Exp $ +# $Id: vuserdel,v 1.11 2007/06/29 14:13:01 dhozac Exp $ # -: ${UTIL_VSERVER_VARS:=$(dirname $0)/util-vserver-vars} +: ${UTIL_VSERVER_VARS:=/usr/lib/util-vserver/util-vserver-vars} test -e "$UTIL_VSERVER_VARS" || { echo "Can not find util-vserver installation; aborting..." exit 1 @@ -21,27 +21,37 @@ usage() } [ -z "$1" ] && usage +[ "$1" == "--static" ] && { STATIC=yes; shift; } NAME=$1 -# stop vserver -vserver $NAME stop +# read config file to get context ID +CTX=`cat $__CONFDIR/$NAME/context` -# turn resource management off for vserver $NAME -service resman stop $NAME +# don't bother stopping gracefully, just kill all the processes +chcontext --silent --secure --ctx $CTX $__LEGACYDIR/vserverkillall + +# unmount any directories in vserver that are mount points +for d in `sed -ne "s%^[^ ]* \($__DEFAULT_VSERVERDIR/$NAME/[^ ]*\) .*%\1%p" /proc/mounts` +do + # use echo -e to turn escaped whitespace back into regular chars + # be careful about embedded backquotes here (i think we're safe) + dir=`echo -e "$d"` + echo "unmounting $dir" + umount -l "$dir" +done # delete user -userdel -r $NAME +[ -z "$STATIC" ] && userdel -r $NAME -# remove vserver configuration file -rm -f /etc/vservers/$NAME.conf +# remove vserver configuration directory +rm -rf /etc/vservers/$NAME # remove vserver profile rm -f /var/run/vservers/$NAME.ctx # destroy vserver -if [ -d $VROOTDIR/$NAME ] ; then - TMP=$(mktemp -d "$VROOTDIR/.vtmp/$NAME.XXXXXX") - mv "$VROOTDIR/$NAME" "$TMP" - chattr -R -i "$TMP" +if [ -d $__DEFAULT_VSERVERDIR/$NAME ] ; then + TMP=$(mktemp -d "$__DEFAULT_VSERVERDIR/.vtmp/$NAME.XXXXXX") + mv "$__DEFAULT_VSERVERDIR/$NAME" "$TMP" rm -rf "$TMP" fi