Subject: Re: [vserver] exec export DEBIAN_FRONTEND=noninteractive
From: Mathieu Goessens <gebura@poolp.org>
Date: Sat, 10 Apr 2010 13:13:27 +0200

Ghislain wrote:
> Le 10/04/2010 12:10, Eugen Leitl a écrit :
>> I'm processing /24 worth of vservers at a time via a noninteractive script,
>> and unfortunately can't make exec export DEBIAN_FRONTEND=noninteractive
>> stick. How are you doing it?
>>
>> The script I use, called as e.g. ./modall.sh 1 254
>>
>> #!/bin/sh
>> set -x
>> IPstart=$1
>> IPend=$2
>>
>> function process () {
>>         vserver v${1} restart
>>         vserver v${1} exec apt-get update
>>         vserver v${1} exec export DEBIAN_FRONTEND=noninteractive
>>         vserver v${1} exec apt-get -y --force-yes install locales nginx postfix
>>         vserver v${1} hashify
>> }
>>
>> for i in `seq $IPstart $IPend`;
>> do
>>         process $i
>> done
>>
>> The error I'm getting is vcontext: execvp("export"): No such file or directory
>> Using just DEBIAN_FRONTEND=noninteractive is no good either, and there's
>> no way to execute multiple commands in one line with vserver exec
>>
>> Do I have to build a script in each vserver and call it? If yes, can someone
>> post a recipe for that? Thanks.
>>
>>   
> 
> had you try to put all on a script and launch the script with vserver exec ?
> 
> #!/bin/bash
> 
> apt-get update
> export DEBIAN_FRONTEND=noninteractive
> apt-get -y --force-yes install locales nginx postfix
>  
> 

Hi,

To complete what Ghislain wrote:

When you call "vserver $vs exec something" it launch a shell witch is
destructed after the command finishs. And, so the vars you set in are losts.

I gess that the export don't work for the same reason that
"chroot /foo export" do'nt: it bypass the shell calling (and so export
is not reconized as a valid command as it is a shell build-in).

So,

- a script should works

- And "vserver $vs exec sh -c 'export FOO=bar; apt-get foobar;'" should
also.

Regards,

-- 
Mathieu Goessens
IT consultant.

gebura@poolp.org
+ 33 6 07 91 54 87
http://gebura.eu.org