X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=scripts%2Fvserver.functions;h=4cf802493b36e920c582f32def6cd630a9a42c8b;hb=d644358f28547545a360401e4b3a5536dda53257;hp=d35a4fe7350a3049cb81a3d40b464aeda800a304;hpb=1ab6ef93a37ff3e4e10146bccf88179024714afe;p=util-vserver.git diff --git a/scripts/vserver.functions b/scripts/vserver.functions index d35a4fe..4cf8024 100644 --- a/scripts/vserver.functions +++ b/scripts/vserver.functions @@ -154,15 +154,21 @@ function _generateNiceCommand function _generateIONiceCommand { local vdir=$1 - local ionice_class=2 - local ionice_priority=0 + local ionice_class= + local ionice_priority= test -n "$_IONICE" || return 0 test -r "$vdir/ionice/class" && read ionice_class <"$vdir"/ionice/class test -r "$vdir/ionice/priority" && read ionice_priority <"$vdir"/ionice/priority - IONICE_CMD=( $_IONICE -c$ionice_class -n$ionice_priority ) + test -n "$ionice_class$ionice_priority" || return 0 + + if test -z "$ionice_class" -a -n "$ionice_priority"; then + IONICE_CMD=( $_IONICE -c2 -n"$ionice_priority" ) + else + IONICE_CMD=( $_IONICE ${ionice_class:+-c$ionice_class} ${ionice_priority:+-n$ionice_priority} ) + fi } function _generatePersonalityOptions @@ -206,6 +212,13 @@ function _generateBCapabilityOptions _readFileToArray "$vdir"/bcapabilities OPTS_VATTRIBUTE --bcap } +function _generateUMaskOptions +{ + local vdir=$1 + + _readFileToArray "$vdir"/umask OPTS_VATTRIBUTE --umask +} + function _generateCapabilityOptions { local vdir=$1 @@ -442,6 +455,7 @@ function _generateChcontextOptions _generateCapabilityOptions "$vdir" _generateFlagOptions "$vdir" + _generateUMaskOptions "$vdir" CHCONTEXT_OPTS=( $SILENT_OPT \ "${CHCONTEXT_FLAG_OPTS[@]}" \ @@ -762,7 +776,11 @@ function disableInterfaces IP_ADDR_FLUSH) ;; IP_LINK) ;; ## Ignore the link-down command for now IP_ROUTE) $_IP route del "$@";; - TUNCTL) $_TUNCTL --~persist "$1";; + TUNCTL) + local dev="$1" + shift + $_TUNCTL --~persist "$@" "$dev" + ;; *) echo "Unknown interface-command type '$type'" >&2; false;; esac done @@ -825,8 +843,11 @@ 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 + local -a dirs=( $($_CHROOT_SH realpath /var/run /var/lock | $_SED 's!^/*!!' || :) ) + local dir + for dir in "${dirs[@]}"; do + $_FIND $dir ! -type d -print0 | xargs -0r $_CHROOT_SH rm + done ;; plain) $_CHROOT_SH rm .autofsck forcefsck 2>/dev/null || :