X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=util-vserver%2Fscripts%2Fvserver.stop;h=79fb97a428b3a5ad9e69e3a5e3cd1e6eb808d477;hb=75385100bedf6d457e88bc2bb942a6f0771b0e06;hp=4100a9b5d09c602dd03e51e0da298dcb3117f08c;hpb=2c29c76b591b36eb26316a30f93e59202874dbe2;p=util-vserver.git diff --git a/util-vserver/scripts/vserver.stop b/util-vserver/scripts/vserver.stop index 4100a9b..79fb97a 100644 --- a/util-vserver/scripts/vserver.stop +++ b/util-vserver/scripts/vserver.stop @@ -36,8 +36,13 @@ function cleanup $_RM -f "$sync_fifo" $_RMDIR $($_DIRNAME "$sync_fifo") } + + test ! -d "$vwait_statdir" || + $_RM -rf "$vwait_statdir" } +vwait_statdir= +vwait_pid= sync_fifo= trap "cleanup" EXIT @@ -48,7 +53,7 @@ generateOptions "$VSERVER_DIR" set +e vshelper.doDestroy "$VSERVER_DIR" "$S_CONTEXT" -initSync "$VSERVER_DIR" sync_fifo +initSync "$VSERVER_DIR" "$S_CONTEXT" sync_fifo prepareStop "$VSERVER_DIR" cd "$VSERVER_DIR"/vdir/ @@ -58,6 +63,7 @@ cd "$VSERVER_DIR"/vdir/ test -z "$OPTION_DEFAULTTTY" || setDefaultTTY "$VSERVER_DIR" fail= +initWait "$VSERVER_DIR" "$S_CONTEXT" vwait_statdir if test -n "$_IS_FAKEINIT" && \ $_VSERVER_INFO - FEATURE vkill; then $_VKILL -s INT --xid "$S_CONTEXT" -- 1 || fail=1 @@ -78,7 +84,7 @@ else "${INITCMD_STOP[@]}" || fail=1 fi -test -n "$fail" || waitForSync "$VSERVER_DIR" "$sync_fifo" +waitForSync "$VSERVER_DIR" "$sync_fifo" "$vwait_statdir" vshelper.doDestroy "$VSERVER_DIR" "$S_CONTEXT" sendKillSequence "$S_CONTEXT" "${INITKILL_SEQ[@]}" @@ -92,4 +98,6 @@ execScriptlets "$VSERVER_DIR" "$VSERVER_NAME" post-stop umountVserver "$VSERVER_DIR" || : disableInterfaces "$VSERVER_DIR" +saveDiskLimits "$VSERVER_DIR" + execScriptlets "$VSERVER_DIR" "$VSERVER_NAME" postpost-stop