Исключение дескриптора подпроцесса python

Я пытаюсь обрабатывать исключения и ошибки из Popen, но я могу обработать его onle из send. Как я могу обращаться с ним из смолы и свиней? вот мой код:

    try:
        tar = Popen("tar cPf - %s" %pth, shell=True, stderr=PIPE, stdout=PIPE)
        pigz = Popen("pigz -1 -kc", stdin=tar.stdout, shell=True, stdout=PIPE, stderr=PIPE)
        send = Popen("./s3cmd -c ./.s3cfg sync - s3://%s/%s.tar.gz" %(bucket_name,filename), stdin=pigz.stdout, shell=True, stderr=PIPE, stdout=PIPE)
        send_err = send.communicate()[1]
        tar.stdout.close()
        pigz.stdout.close()
        tar.wait()
        pigz.wait()
        if send_err:
            print send_err
            return False
        else:
            return True
    except:
            return False