X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=scripts%2Fvserver.functions;h=d9794019f18d6b7eee42496c866375bd101bc25e;hb=58df27cf3be8958d7a053fcbdddf93cd23a14ca9;hp=b014abf897f568aa2127b7538e579ae04c380628;hpb=a3093bf7ba9e93056bd6aabb30ed0d20210c345c;p=util-vserver.git diff --git a/scripts/vserver.functions b/scripts/vserver.functions index b014abf..d979401 100644 --- a/scripts/vserver.functions +++ b/scripts/vserver.functions @@ -49,6 +49,8 @@ declare -a OPTS_VTAG_CREATE=() declare -a OPTS_VTAG_ENTER=() declare -a OPTS_VMEMCTRL=() declare -a OPTS_VSPACE=( --default ) +declare -a OPTS_VSPACE_SHARED=() +declare -a VSPACE_SHARED_CMD=() declare -a STOPCMD_PREPARE=() @@ -344,7 +346,8 @@ function _generateInitOptions panic "init-vserver.sh not found; aborting" fi - INITCMD_START=( env TERM=$TERM $RC_WRAP "$RUNLEVEL_START" ) + OPTS_ENV=( "${OPTS_ENV[@]}" TERM=$TERM ) + INITCMD_START=( $RC_WRAP "$RUNLEVEL_START" ) INITCMD_STOP=( env -i PATH=$RC_PATH TERM=$TERM RUNLEVEL=0 /sbin/rc shutdown ) INITCMD_PREPARE=( $_FAKE_RUNLEVEL 3 /var/run/utmp ) ;; @@ -786,16 +789,30 @@ function _generateSpaceOptions { local vdir="$1" local d="$vdir"/spaces + local shared - ( test ! -e "$d"/pid ) || \ - OPTS_VSPACE=( "${OPTS_VSPACE[@]}" --pid ) + if test -e "$d"/pid; then + getFileValue shared "$d"/pid + if test -z "$shared"; then + OPTS_VSPACE=( "${OPTS_VSPACE[@]}" --pid ) + else + OPTS_VSPACE_SHARED=( "${OPTS_VSPACE_SHARED[@]}" --pid ) + VSPACE_SHARED_CMD=( "${VSPACE_SHARED_CMD[@]}" $_VSPACE --enter "$shared" --pid -- ) + fi + fi - test ! -e "$d"/net || { - OPTS_VSPACE=( "${OPTS_VSPACE[@]}" --net ) + if test -e "$d"/net; then + getFileValue shared "$d"/net # network context and namespace don't make much sense _HAVE_CHBIND_OPTIONS=1 CHBIND_CMD=() - } + if test -z "$shared"; then + OPTS_VSPACE=( "${OPTS_VSPACE[@]}" --net ) + else + OPTS_VSPACE_SHARED=( "${OPTS_VSPACE_SHARED[@]}" --net ) + VSPACE_SHARED_CMD=( "${VSPACE_SHARED_CMD[@]}" $_VSPACE --enter "$shared" --net -- ) + fi + fi local mask getFileValue mask "$d"/mask || \ @@ -808,8 +825,8 @@ function prepareInit pushd "$1/vdir" >/dev/null case "$INITSTYLE" in sysv) - { find var/run ! -type d -print0; \ - find var/lock ! -type d -print0; } | xargs -0r $_CHROOT_SH rm + { $_FIND var/run ! -type d -print0; \ + $_FIND var/lock ! -type d -print0; } | xargs -0r $_CHROOT_SH rm ;; plain) $_CHROOT_SH rm .autofsck forcefsck 2>/dev/null || : @@ -1217,7 +1234,7 @@ WARNING: There is no cachedirectory configured for this vserver; ln -s ../.defaults/cachebase/$VSERVER_NAME $cfgdir/cache " - find "$cfgdir" -type f -exec "$_CHECK_UNIXFILE" '{}' ';' + $_FIND "$cfgdir" -type f -exec "$_CHECK_UNIXFILE" '{}' ';' vshelper.doSanityCheck