X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=scripts%2Fvuserdel;h=a875dc8d48f8a9c0580c1c14443e91de6eafea38;hb=02d4be5a4c26c0116ebe9368d6b678bf1eae7d31;hp=d24c47992ed06ef82a302af652eadbce1b926a19;hpb=03862e76d7fce9279e22b8a0ee15863041ce228e;p=util-vserver.git diff --git a/scripts/vuserdel b/scripts/vuserdel index d24c479..a875dc8 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.8 2005/07/28 21:30:07 smuir 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,16 +21,33 @@ usage() } [ -z "$1" ] && usage +[ "$1" == "--static" ] && { STATIC=yes; shift; } NAME=$1 -# stop vserver -vserver $NAME stop +# read config file to get context ID +. /etc/vservers/$NAME.conf +CTX=$S_CONTEXT + +# 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 # turn resource management off for vserver $NAME -service resman stop $NAME +chkconfig resman && service resman stop $NAME +# XXX - resman doesn't print a trailing newline +echo # delete user -userdel -r $NAME +[ -z "$STATIC" ] && userdel -r $NAME # remove vserver configuration file rm -f /etc/vservers/$NAME.conf @@ -39,9 +56,8 @@ rm -f /etc/vservers/$NAME.conf 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