pkgcore / pychroot

a python library and cli tool that simplify chroot handling
https://pkgcore.github.io/pychroot/
BSD 3-Clause "New" or "Revised" License
32 stars 7 forks source link

Chroot never exiting #36

Open Azkali opened 3 years ago

Azkali commented 3 years ago

Hi I am currently trying to use your module to bootstrap distributions. I am using a Popen wrapper to run the commands in the chroot. The command run successfully but the never exit the chroot.

Environment : Python 3.8.7 | Kernel 5.9.12 | Gentoo

Popen wrapper :

def run(cmd):
    ''' subprocess.Popen wrapper '''
    process = Popen(cmd, universal_newlines=True,
        shell=True, stdout=PIPE,stderr=STDOUT)
    while True:
        output = process.stdout.readline()
        if output == '' and process.poll() is not None:
            break
        if output:
            print(output.strip())
    rc = process.poll()
    return rc

Chroot :

        chroot = Chroot(self.distro_dir)
        with chroot:
            print("Chrooting in {}".format(self.distro_dir))
            for cmd in self.script:
                run(cmd)
            print("Chroot process done !")