Я вызываю подпроцесс и хочу отключить любой вывод в мою оболочку. Я пытаюсь сделать это с:
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, а сервер фактически печатает.