2011-06-14 39 views
1

我正在處理偶爾會進入無限循環的子進程,並使用垃圾填充標準輸出。我通常需要捕獲標準輸出,除了這些情況。處理溢出標準輸出的子進程

discussion給出了一種限制子進程所需時間的方法,但問題在於,對於合理的超時,它可以在被殺死之前產生GB的輸出。

有沒有辦法限制從過程中捕獲的輸出量?

回答

1

如果無法檢測到洪水發生的時間,那麼其他人可能無法檢測到。既然你做了捕捉,你當然可以自由地限制你的捕捉,但是這需要你知道什麼時候發生了循環。

也許你可以使用限速,如果「常規」速率低於垃圾郵件發生時觀察到的速率?

1

您可以將子進程的stout連接到類似文件的對象,這會限制在調用Popen時它將傳遞給實際stdout的數據量。類文件對象可以是fifo或cStringIO

相關問題