Запретить подпроцессу подпроцесса записывать в стандартный вывод - PullRequest
2 голосов
/ 06 февраля 2012

Я вызываю подпроцесс и хочу отключить любой вывод в мою оболочку. Я пытаюсь сделать это с:

 with tempfile.TemporaryFile() as tempf:
        proc = Popen(cmd, stdout=tempf, stderr=tempf)
        proc.communicate()

Но на терминале все еще есть выход (но меньше, чем обычно). Может ли быть проблема в том, что вызываемый процесс использует os.execvp? Любые предложения полностью отключить вывод для всех подпроцессов?

Примечание

Перенаправление на devnull - лучший способ отключить вывод:

with open(os.devnull, 'w') as tempf:
    proc = Popen(cmd, stdout=tempf, stderr=tempf)
    proc.communicate()

Ответ на вопрос!

Очень простое решение: вызываемый процесс использует CORBA, а сервер фактически печатает.

1 Ответ

0 голосов
/ 12 марта 2012

Как описано выше, вызываемый процесс вызывал сервер, который произвел стандартный вывод mysterios.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...