with tempfile.TemporaryFile() as iofile:
    p = Popen(cmd, stdout=iofile, stderr=iofile)
while True:
    if p.poll() is not None:
        break
else:
    time.sleep(0.1)
Убедитесь, что скрипт Python с подпроцессами умирает на SIGINT