2011-06-14 4 views
1

가끔씩 무한 루프가되어 쓰레기로 stdout에 넘치는 서브 프로세스를 다루고 있습니다. 나는 일반적으로 이러한 경우를 제외하고는 stdout을 캡처해야합니다.stdout을 flood로 처리하는 서브 프로세스를 처리합니다.

discussion은 하위 프로세스에 걸리는 시간을 제한하는 방법을 제공하지만 합리적인 시간 초과로 인해 종료되기 전에 GB의 출력이 생성 될 수 있다는 점이 문제입니다.

프로세스에서 캡처 한 출력량을 제한하는 방법이 있습니까?

답변

1

홍수가 발생할 때를 감지 할 수없는 경우 다른 사람이 할 수있는 기회가 없습니다. 캡처 작업을 수행하므로 물론 캡처를 제한 할 수는 있지만 루핑이 발생했을 때이를 알 필요가 있습니다.

아마도 "일반"속도가 스팸 발생시 관찰되는 속도보다 낮 으면 속도 제한을 사용할 수 있습니까?

1

Popen에 전화 할 때 실제 stdout으로 전달할 데이터의 양을 제한하는 파일과 유사한 객체에 서브 프로세스의 stout을 연결할 수 있습니다. 파일과 같은 객체는 fifo 또는 cStringIO 일 수 있습니다.

관련 문제