X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=scripts%2Fvserver.start;h=6658acb449bc6c8c59b497f9d507c92b1372e70c;hb=569b1bfe1e5954fa083532dc37d2fe7418ec2d4a;hp=3ba7fb6182e5e11374a0faa4da264473995c68b6;hpb=a39c4f55f865d1294a5e11c93b3d9c783b547eff;p=util-vserver.git diff --git a/scripts/vserver.start b/scripts/vserver.start index 3ba7fb6..6658acb 100644 --- a/scripts/vserver.start +++ b/scripts/vserver.start @@ -83,6 +83,7 @@ inclusive its arguments to the cmdline." INITCMD_RESCUE=( $2 ); have_initcmd=1 shift;; + (--rescue-init) _IS_FAKEINIT=1;; (--) shift; break;; (-*) panic $"vserver ... start: unknown option '$1'";; (*) break; @@ -104,6 +105,8 @@ pushd "$VSERVER_DIR" >/dev/null execScriptlets "$VSERVER_DIR" "$VSERVER_NAME" initialize popd >/dev/null +fsckAllFS "$VSERVER_DIR" + mountRootFS "$VSERVER_DIR" generateOptions "$VSERVER_DIR" @@ -115,9 +118,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" + +handleDeviceMap --set "$S_CONTEXT" "$VSERVER_DIR/apps/vdevmap" pushd "$VSERVER_DIR"/vdir/ >/dev/null execScriptlets "$VSERVER_DIR" "$VSERVER_NAME" pre-start @@ -128,20 +134,28 @@ 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[@]} \ - $_CHBIND "${CHBIND_OPTS[@]}" -- \ + "${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[@]}" -- \ + $_EXEC_REMOUNT /proc /sys -- \ $_VLIMIT --dir "$VSERVER_DIR"/rlimits --missingok -- \ $_VSCHED --xid self --force "${OPTS_VSCHED[@]}" -- \ - $_VUNAME --xid self --dir "$VSERVER_DIR"/uts --missingok -- \ + $_VSYSCTL --xid self --dir "$VSERVER_DIR"/sysctl --missingok -- \ + $_VUNAME --xid self --dir "$VSERVER_DIR"/uts --missingok -- \ + $_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 $SILENT_OPT \ "${OPTS_VCONTEXT_MIGRATE[@]}" "${OPTS_VCONTEXT_ENTER[@]}" -- \ "${INITCMD_START[@]}" else @@ -151,8 +165,9 @@ else $_MKFIFO -m600 "$startsync_pipe" ## safe, since mkfifo does not follow symlinks fi + ${IONICE_CMD[@]} \ ${NICE_CMD[@]} \ - $_CHBIND_COMPAT "${CHBIND_OPTS[@]}" \ + "${CHBIND_CMD[@]}" \ $_EXEC_ULIMIT "$VSERVER_DIR/ulimits" \ $_CHCONTEXT_COMPAT "${CHCONTEXT_OPTS[@]}" "${CHCONTEXT_INIT_OPTS[@]}" \ $_SAVE_CTXINFO "$VSERVER_DIR" \