gentoo: use /var/run for new /run compatibility
[util-vserver.git] / scripts / vserver.start
index 3d32363..0f36642 100644 (file)
@@ -60,6 +60,7 @@ Failed to start vserver '$VSERVER_NAME'"
     test -n "$OPTION_DEBUG"    || exec 2>/dev/null >/dev/null
     test -z "$is_mounted"      || umountVserver     "$VSERVER_DIR" || :
     test -z "$have_interfaces" || disableInterfaces "$VSERVER_DIR" || :
+    test -z "$have_cgroup"     || destroyCgroup     "$VSERVER_DIR" || :
 
     unlock || :
 }
@@ -72,6 +73,7 @@ is_vshelper_init=
 have_interfaces=
 startsync_pipe=
 have_initcmd=
+have_cgroup=
 
 while test "$#" -gt 0; do
     case "$1" in
@@ -118,9 +120,12 @@ setDiskLimits    "$VSERVER_DIR"
 
 enableInterfaces "$VSERVER_DIR" && have_interfaces=1
 
-mountVserver "$VSERVER_DIR"     && is_mounted=1
-prepareInit  "$VSERVER_DIR"
-addtoCPUSET  "$VSERVER_DIR"
+mountVserver     "$VSERVER_DIR" && is_mounted=1
+prepareInit      "$VSERVER_DIR"
+addtoCPUSET      "$VSERVER_DIR"
+attachToCgroup   "$VSERVER_DIR" && have_cgroup=1
+
+handleDeviceMap --set "$S_CONTEXT" "$VSERVER_DIR/apps/vdevmap"
 
 pushd "$VSERVER_DIR"/vdir/ >/dev/null
 execScriptlets   "$VSERVER_DIR" "$VSERVER_NAME" pre-start
@@ -131,24 +136,29 @@ test -z "$OPTION_DEFAULTTTY" || setDefaultTTY "$VSERVER_DIR"
 pushd "$VSERVER_DIR"/vdir/ >/dev/null
 is_configured=1
 if $_VSERVER_INFO - FEATURE migrate; then
+    ${IONICE_CMD[@]} \
     ${NICE_CMD[@]} \
+    "${VSPACE_SHARED_CMD[@]}" \
     "${CHBIND_CMD[@]}" \
     $_EXEC_ULIMIT "$VSERVER_DIR"/ulimits \
     $_VTAG       --create "${OPTS_VTAG_CREATE[@]}" --silent -- \
+    $_VSPACE     --new "${OPTS_VSPACE[@]}" -- \
     $_VCONTEXT   --create "${OPTS_VCONTEXT_CREATE[@]}" -- \
     ${OPTION_STRACE:+$_STRACE -fF -o /tmp/vserver-start.$$} \
     ${USE_VNAMESPACE:+$_VNAMESPACE --set -- } \
+    $_VSPACE     --set "${OPTS_VSPACE[@]}" "${OPTS_VSPACE_SHARED[@]}" -- \
+    $_EXEC_REMOUNT /proc /sys -- \
     $_VLIMIT     --dir "$VSERVER_DIR"/rlimits --missingok -- \
     $_VSCHED     --xid self --force "${OPTS_VSCHED[@]}" -- \
     $_VSYSCTL    --xid self --dir "$VSERVER_DIR"/sysctl --missingok -- \
     $_VUNAME     --xid self --dir "$VSERVER_DIR"/uts    --missingok -- \
-    $_VMEMCTRL   --xid self "${OPTS_VMEMCTRL[@]}" -- \
+    $_VMEMCTRL   --xid self --set "${OPTS_VMEMCTRL[@]}" -- \
     "${VSERVER_EXTRA_CMDS[@]}" \
     $_VUNAME     --xid self --set -t context="$VSERVER_DIR" -- \
     $_VATTRIBUTE --set "${OPTS_VATTRIBUTE[@]}" -- \
     $_SAVE_CTXINFO "$VSERVER_DIR" \
     $_ENV -i "${OPTS_ENV[@]}" \
-    $_VCONTEXT   --migrate-self --endsetup --chroot $SILENT_OPT \
+    $_VCONTEXT   --migrate-self --endsetup $OPT_VCONTEXT_CHROOT $OPT_VCONTEXT_CLOSE_FD $SILENT_OPT \
     "${OPTS_VCONTEXT_MIGRATE[@]}" "${OPTS_VCONTEXT_ENTER[@]}" -- \
     "${INITCMD_START[@]}"
 else
@@ -158,6 +168,7 @@ else
        $_MKFIFO -m600 "$startsync_pipe"        ## safe, since mkfifo does not follow symlinks
     fi
     
+    ${IONICE_CMD[@]} \
     ${NICE_CMD[@]} \
     "${CHBIND_CMD[@]}" \
     $_EXEC_ULIMIT      "$VSERVER_DIR/ulimits" \