Quoting Eric Blake (eblake(a)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(a)ubuntu.com>
> Signed-off-by: Serge Hallyn <serge.hallyn(a)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