OPTION_FORCE_SYNC=1
+while test "$#" -gt 0; do
+ case "$1" in
+ (--rescue-init) shift; _IS_FAKEINIT=1;;
+ (--) shift; break;;
+ (-*) panic $"vserver ... stop: unknown option '$1'";;
+ esac
+done
+
set -e
generateOptions "$VSERVER_DIR"
set +e
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" && \
$_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[@]}" "${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[@]}" "." \
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
echo $"Vserver '$VSERVER_DIR' still running unexpectedly; please investigate it manually..." >&2
execScriptlets "$VSERVER_DIR" "$VSERVER_NAME" post-stop
-
+
+handleDeviceMap --unset "$S_CONTEXT" "$VSERVER_DIR/apps/vdevmap"
+
umountVserver "$VSERVER_DIR" || :
disableInterfaces "$VSERVER_DIR"
execScriptlets "$VSERVER_DIR" "$VSERVER_NAME" postpost-stop
removeCPUSET "$VSERVER_DIR"
+destroyCgroup "$VSERVER_DIR"