gentoo: use /var/run for new /run compatibility
[util-vserver.git] / scripts / vserver.stop
index 51b9178..55aedb3 100644 (file)
@@ -50,7 +50,7 @@ OPTION_FORCE_SYNC=1
 
 while test "$#" -gt 0; do
     case "$1" in
-       (--rescue-init) _IS_FAKEINIT=1;;
+       (--rescue-init) shift; _IS_FAKEINIT=1;;
        (--)            shift; break;;
        (-*)            panic $"vserver ... stop: unknown option '$1'";;
     esac
@@ -70,6 +70,8 @@ cd "$VSERVER_DIR"/vdir/
 
 test -z "$OPTION_DEFAULTTTY" || setDefaultTTY "$VSERVER_DIR"
 
+$_VATTRIBUTE --set --xid "$S_CONTEXT" --flag !SC_HELPER
+
 fail=
 initWait          "$VSERVER_DIR" "$S_CONTEXT" vwait_statdir
 if test -n "$_IS_FAKEINIT" && \
@@ -78,15 +80,17 @@ if test -n "$_IS_FAKEINIT" && \
        $_VKILL -s INT --xid "$S_CONTEXT" -- 1 || fail=1
     fi
 elif $_VSERVER_INFO - FEATURE migrate; then
+    "${IONICE_CMD[@]}" \
     "${NICE_CMD[@]}" \
     "${CHBIND_CMD[@]}" \
-    "$_VSPACE" --enter "$S_CONTEXT" "${OPTS_VSPACE[@]}" -- \
+    "$_VSPACE" --enter "$S_CONTEXT" "${OPTS_VSPACE[@]}" "${OPTS_VSPACE_SHARED[@]}" -- \
     "$_VTAG" --migrate "${OPTS_VTAG_ENTER[@]}" --silent -- \
-    $_VCONTEXT $SILENT_OPT --migrate --chroot --xid "$S_CONTEXT" -- \
+    $_VCONTEXT $SILENT_OPT --migrate $OPT_VCONTEXT_CHROOT --xid "$S_CONTEXT" -- \
     "${INITCMD_STOP[@]}" || fail=1
 else
+    "${IONICE_CMD[@]}" \
     "${NICE_CMD[@]}" \
-    "$_CHBIND"       "${CHBIND_OPTS[@]}" \
+    "${CHBIND_CMD[@]}" \
     "$_EXEC_ULIMIT"  "$VSERVER_DIR/ulimits" \
     $_CHCONTEXT_COMPAT    "${CHCONTEXT_OPTS[@]}" \
     "$_CAPCHROOT"    "${CAPCHROOT_OPTS[@]}" "." \
@@ -94,10 +98,10 @@ else
 fi
 
 # Remove persistent so those contexts can be stopped
-$_VATTRIBUTE --set --xid "$S_CONTEXT" --flag ~persistent 2>/dev/null || :
-if $_VSERVER_INFO -q "$S_CONTEXT" XIDTYPE static &&
+$_VATTRIBUTE --set --xid "$S_CONTEXT" --flag !persistent 2>/dev/null || :
+if $_VSERVER_INFO -q "$N_CONTEXT" XIDTYPE static &&
    $_VSERVER_INFO - FEATURE vnet; then
-    $_NATTRIBUTE --set --nid "$S_CONTEXT" --flag ~persistent 2>/dev/null || :
+    $_NATTRIBUTE --set --nid "$N_CONTEXT" --flag !persistent 2>/dev/null || :
 fi
 
 vshelper.doStopSync
@@ -122,3 +126,4 @@ saveDiskLimits    "$VSERVER_DIR"
 
 execScriptlets    "$VSERVER_DIR" "$VSERVER_NAME" postpost-stop
 removeCPUSET      "$VSERVER_DIR"
+destroyCgroup     "$VSERVER_DIR"