имеем дело с подпроцессом, который затопляет стандартный вывод

1

Я имею дело с подпроцессом, который иногда входит в бесконечный цикл и наводняет stdout с мусором. Обычно мне нужно записать stdout, за исключением тех случаев.

Этот обсуждение дает возможность ограничить время, которое занимает подпроцесс, но проблема в том, что для разумного таймаута он может генерировать ГБ выхода до того, как он будет убит.

Есть ли способ ограничить объем вывода, который был получен из процесса?

Теги:
subprocess
stdout

2 ответа

1

Если вы не можете обнаружить, когда происходит наводнение, шансов больше никто не может. Поскольку вы выполняете захват, вы, конечно, можете ограничить захват, но это требует, чтобы вы знали, когда произошел цикл.

Возможно, вы можете использовать ограничение rate-, если "регулярная" ставка ниже, чем та, которая наблюдается при возникновении спама?

1

Вы можете подключить субпроцесс целиком к объекту file-, который ограничивает объем данных, которые он передаст в реальную выдержку, когда вы вызываете Popen. Объектом file- может быть fifo или cStringIO.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню