X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=scripts%2Fvserver.functions;h=e6482c689940bf8a248925c4492d63d92cbb3bea;hb=2f0464efba2a0571561ad0aaa864a42cbd731d4c;hp=8f9b71e4265d3d269c70807a8f9d28c585528295;hpb=1ab9267e1b9e34a13c824dd74be4a57d8a67a286;p=util-vserver.git diff --git a/scripts/vserver.functions b/scripts/vserver.functions index 8f9b71e..e6482c6 100644 --- a/scripts/vserver.functions +++ b/scripts/vserver.functions @@ -46,6 +46,7 @@ declare -a OPTS_ENV=() declare -a OPTS_VTAG_CREATE=() declare -a OPTS_VTAG_ENTER=() declare -a OPTS_VMEMCTRL=() +declare -a OPTS_VSPACE=() declare -a STOPCMD_PREPARE=() @@ -692,7 +693,7 @@ function _generateTagOptions function _generateMemctrlOptions { - local vdir="$" + local vdir="$1" local badness getFileValue badness "$vdir/badness" @@ -701,6 +702,26 @@ function _generateMemctrlOptions OPTS_VMEMCTRL=( --badness "$badness" ) } +function _generateSpaceOptions +{ + local vdir="$1" + local d="$vdir"/spaces + + test ! -e "$d"/pid || \ + OPTS_VSPACE=( "${OPTS_VSPACE[@]}" --pid ) + + test ! -e "$d"/net || { + OPTS_VSPACE=( "${OPTS_VSPACE[@]}" --net ) + # network context and namespace don't make much sense + _HAVE_CHBIND_OPTIONS=1 + CHBIND_CMD=() + } + + local mask + getFileValue mask "$d"/mask || \ + OPTS_VSPACE=( "${OPTS_VSPACE[@]}" --mask "$mask" ) +} + ## Usage: prepareInit function prepareInit { @@ -746,6 +767,7 @@ function generateOptions _generatePersonalityOptions "$1" _generateTagOptions "$1" _generateMemctrlOptions "$1" + _generateSpaceOptions "$1" if test -n "$_IS_FAKEINIT"; then CHCONTEXT_INIT_OPTS=( --disconnect --flag fakeinit )