OPTION_FORCE_SYNC=1
+while test "$#" -gt 0; do
+ case "$1" in
+ (--rescue-init) _IS_FAKEINIT=1;;
+ (--) shift; break;;
+ (-*) panic $"vserver ... stop: unknown option '$1'";;
+ esac
+done
+
set -e
generateOptions "$VSERVER_DIR"
set +e
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
- ## HACK: remove the 'initpid' stuff above when PID virtualization
- ## is implemented
+ if ! vshelper.isStopSync; then
+ $_VKILL -s INT --xid "$S_CONTEXT" -- 1 || fail=1
+ fi
elif $_VSERVER_INFO - FEATURE migrate; then
"${NICE_CMD[@]}" \
+ "${CHBIND_CMD[@]}" \
+ "$_VTAG" --migrate "${OPTS_VTAG_ENTER[@]}" --silent -- \
$_VCONTEXT $SILENT_OPT --migrate --chroot --xid "$S_CONTEXT" -- \
"${INITCMD_STOP[@]}" || fail=1
else
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"