From: Daniel Hokka Zakrisson Date: Thu, 12 Aug 2010 03:05:59 +0000 (+0000) Subject: Use context for vsysvwrapper. X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8a3f3a69bb09b7b9bf63dd623c4993b02cfe021f;hp=0cfbc91382279794682fbe6dac45fd05d2f29d5a;p=util-vserver.git Use context for vsysvwrapper. git-svn-id: http://svn.linux-vserver.org/svn/util-vserver/trunk@2911 94cd875c-1c1d-0410-91d2-eb244daf1a30 --- diff --git a/lib/issupported.c b/lib/issupported.c index 35cd9f2..cb7bcba 100644 --- a/lib/issupported.c +++ b/lib/issupported.c @@ -52,6 +52,7 @@ vc_isSupported(vcFeatureSet feature) case vcFEATURE_PIVOT_ROOT : return ver >= 0x00020304; case vcFEATURE_PIDSPACE : return false; case vcFEATURE_MEMCG : return ver >= 0x00020306 && conf & VC_VCI_MEMCG; + case vcFEATURE_DYNAMIC : return ver < 0x00020300 || !(conf & VC_VCI_NO_DYNAMIC); default : assert(false); } diff --git a/lib/issupportedstring.c b/lib/issupportedstring.c index fa9cafe..ccd4e23 100644 --- a/lib/issupportedstring.c +++ b/lib/issupportedstring.c @@ -36,6 +36,7 @@ static struct { DECL(VHI), DECL(VSHELPER0), DECL(VSHELPER), DECL(VWAIT), DECL(VNET), DECL(VSTAT), DECL(PPTAG), DECL(PIDSPACE), DECL(SPACES), DECL(PERSISTENT),DECL(PIVOT_ROOT),DECL(MEMCG), + DELC(DYNAMIC), }; bool diff --git a/lib/vserver.h b/lib/vserver.h index 9c1e820..f8da611 100644 --- a/lib/vserver.h +++ b/lib/vserver.h @@ -990,7 +990,7 @@ extern "C" { vcFEATURE_VSHELPER0, vcFEATURE_VSHELPER, vcFEATURE_VWAIT, vcFEATURE_VNET, vcFEATURE_VSTAT, vcFEATURE_PPTAG, vcFEATURE_PIDSPACE, vcFEATURE_SPACES, vcFEATURE_PERSISTENT, - vcFEATURE_PIVOT_ROOT, vcFEATURE_MEMCG, + vcFEATURE_PIVOT_ROOT, vcFEATURE_MEMCG, vcFEATURE_DYNAMIC, } vcFeatureSet; diff --git a/scripts/vsysvwrapper b/scripts/vsysvwrapper index da9754e..ebb5999 100755 --- a/scripts/vsysvwrapper +++ b/scripts/vsysvwrapper @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash # Copyright (C) 2003 Enrico Scholz # based on vsyswrapper by Jacques Gelinas @@ -35,11 +35,16 @@ else if [ -f /etc/vservices/$SERVICE.conf ] ; then . /etc/vservices/$SERVICE.conf fi + if [ -z "$NID" ]; then + if ! $_VSERVER_INFO - FEATURE dynamic; then + NID=49151 + fi + fi IPOPT= for oneip in $IP do IPOPT="$IPOPT --ip $oneip" done - echo exec $_CHBIND $IPOPT /etc/init.d/$SERVICE "$@" - exec $_CHBIND $IPOPT /etc/init.d/$SERVICE "$@" + echo exec $_CHBIND ${NID:+--nid $NID} $IPOPT /etc/init.d/$SERVICE "$@" + exec $_CHBIND ${NID:+--nid $NID} $IPOPT /etc/init.d/$SERVICE "$@" fi