diff --git a/util/vm/build.py b/util/vm/build.py index eb0206cc25f48aaaaee49bf90956a9e8796342ac..eca4096ce9f07a04600078837d0df8062c969772 100755 --- a/util/vm/build.py +++ b/util/vm/build.py @@ -441,7 +441,12 @@ def boot( cow, kernel, initrd, logfile, memory=1024 ): returns: pexpect object to qemu process""" # pexpect might not be installed until after depend() is called global pexpect - import pexpect + if not pexpect: + import pexpect + class Spawn( pexpect.spawn ): + "Subprocess is sudo, so we have to sudo kill it" + def close( self, force=False ): + srun( 'kill %d' % self.pid ) arch = archFor( kernel ) log( '* Detected kernel architecture', arch ) if NoKVM: @@ -462,7 +467,7 @@ def boot( cow, kernel, initrd, logfile, memory=1024 ): cmd = ' '.join( cmd ) log( '* BOOTING VM FROM', cow ) log( cmd ) - vm = pexpect.spawn( cmd, timeout=TIMEOUT, logfile=logfile ) + vm = Spawn( cmd, timeout=TIMEOUT, logfile=logfile ) return vm