X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=scripts%2Ffunctions;h=7b319444824772b2559914bf17fa402bf6f96238;hb=861d5e7b2d87351655416c62094ed3ba141183a9;hp=0edb7a3e73c3f210540d1c97c19cb6c43fdb5693;hpb=60295bc3135d3e16d4f5c4aed6882132546326d5;p=util-vserver.git diff --git a/scripts/functions b/scripts/functions index 0edb7a3..7b31944 100644 --- a/scripts/functions +++ b/scripts/functions @@ -282,7 +282,7 @@ function set_init_cwd export INIT_CWD } -function _getVserverDir +function _setVserverDir { local vserver="$1" case "$vserver" in @@ -292,6 +292,15 @@ function _getVserverDir esac } +function _setVserverName +{ + if test -e "$VSERVER_DIR"/name; then + read VSERVER_NAME <"$VSERVER_DIR"/name + else + VSERVER_NAME=$(basename "$VSERVER_DIR") + fi +} + function _pkgMountBindDir() { test "$1" != "$2" || return 0 @@ -510,6 +519,7 @@ function isNamespaceCleanup $_VSERVER_INFO - FEATURE namespace || return 1 cfgdir=$($_VSERVER_INFO "$1" CFGDIR) || return 1 + isAvoidNamespace "$1" && return 1 test -e "$cfgdir"/namespace-cleanup && return 0 test -e "$cfgdir"/nonamespace-cleanup -o \ -e "$__CONFDIR"/.defaults/nonamespace-cleanup && return 1 @@ -591,10 +601,16 @@ function getVserverStatus read _gvs_ctx <"$1"/run eval "$2"=\$_gvs_ctx - test -n "$3" || return 0 - local _gvs_tmp - _getProcNumberCount "$_gvs_ctx" _gvs_tmp - eval "$3"=\$_gvs_tmp + if test "$1" = "$($_VUNAME -g --xid "$_gvs_ctx" context)"; then + test -n "$3" || return 0 + local _gvs_tmp + _getProcNumberCount "$_gvs_ctx" _gvs_tmp + eval "$3"=\$_gvs_tmp + else + test -n "$3" || return 1 + eval "$3"=0 + _gvs_tmp=0 + fi if test "$_gvs_tmp" = 0; then local runfile=$($_READLINK "$1/run") @@ -713,8 +729,12 @@ function setDefaultTTY "$__CONFDIR/.defaults/apps/init/tty" \ $2 /dev/null - exec <$ttyname - exec &>$ttyname + if test -f "$ttyname"; then + exec >$ttyname 2>&1 } ## Usage: killContext [] @@ -980,7 +1000,11 @@ function vshelper.doInit local xid xid=$($_VSERVER_INFO "$1" CONTEXT false) && test -n "$xid" || { - warning $"vshelper.init: can not determine xid of vserver '$vserver'; returned value was '$xid'" + warning $"vshelper.init: can not determine xid of vserver '$vserver'; returned value was '$xid' + +This usually means that you're using an init-less init-style, but the +guest isn't configured to start any service. Try enabling a service, +changing the init-style, or making the contexts persistent." return 1 } @@ -1064,6 +1088,12 @@ function vshelper.doStopSync test ! -p "$VSHELPER_STOP_SYNC" || echo stopped > "$VSHELPER_STOP_SYNC" } +function vshelper.isStopSync +{ + test -p "$VSHELPER_STOP_SYNC" || return 1 + return 0 +} + function _rpmFake.getCapFlags { local ctx=$1