[libvirt] [PATCH] send 'container=libvirt' in env to container init

Serge Hallyn serge.hallyn at canonical.com
Mon May 16 15:14:29 UTC 2011


Quoting Eric Blake (eblake at redhat.com):
> On 05/16/2011 08:47 AM, Serge Hallyn wrote:
> > This allows upstart scripts to detect that they are in a container
> > and modify their behavior accordingly.
> > 
> > In this way, the same ubuntu maverick or natty image with the 'lxcguest'
> > package installed can be booted on bare metal, in kvm, or as a
> > libvirt or liblxc container.
> > 
> > Signed-off-by: Chuck Short <zulcss at ubuntu.com>
> > Signed-off-by: Serge Hallyn <serge.hallyn at ubuntu.com>
> > ---
> >  src/lxc/lxc_container.c |    1 +
> >  1 files changed, 1 insertions(+), 0 deletions(-)
> > 
> > diff --git a/src/lxc/lxc_container.c b/src/lxc/lxc_container.c
> > index 9ae93b5..a70aeeb 100644
> > --- a/src/lxc/lxc_container.c
> > +++ b/src/lxc/lxc_container.c
> > @@ -112,6 +112,7 @@ static virCommandPtr lxcContainerBuildInitCmd(virDomainDefPtr vmDef)
> >  
> >      virCommandAddEnvString(cmd, "PATH=/bin:/sbin");
> >      virCommandAddEnvString(cmd, "TERM=linux");
> > +    virCommandAddEnvString(cmd, "container=libvirt");
> 
> POSIX reserves lowercase env names for the user.  Is upstart really
> using a lower case name, or should this be an upper case name?

No upstart isn't doing anything itself :)  Just blame me - the upstart
scripts I put into lxcguest do in fact check for lower-case.

What do you mean by 'for the user'?  For the user to type into the
boot args, or something else?


> >      virCommandAddEnvPair(cmd, "LIBVIRT_LXC_UUID", uuidstr);
> >      virCommandAddEnvPair(cmd, "LIBVIRT_LXC_NAME", vmDef->name);
> 
> Can upstart be taught to look for LIBIVRT_LXC_UUID instead?

That's a possibility, yes.  It just makes it less symmetric to the
liblxc case, but if you prefer that I see no reason why it wouldn't
work.

thanks,
-serge




More information about the libvir-list mailing list