From 8a3f3a69bb09b7b9bf63dd623c4993b02cfe021f Mon Sep 17 00:00:00 2001 From: Daniel Hokka Zakrisson Date: Thu, 12 Aug 2010 03:05:59 +0000 Subject: [PATCH] Use context for vsysvwrapper. git-svn-id: http://svn.linux-vserver.org/svn/util-vserver/trunk@2911 94cd875c-1c1d-0410-91d2-eb244daf1a30 --- lib/issupported.c | 1 + lib/issupportedstring.c | 1 + lib/vserver.h | 2 +- scripts/vsysvwrapper | 11 ++++++++--- 4 files changed, 11 insertions(+), 4 deletions(-) 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 -- 1.8.1.5