处理充斥stdout的子过程

| 我正在处理子进程,该子进程有时会陷入无限循环,并用垃圾淹没stdout。除那些情况外,我通常需要捕获stdout。 该讨论提供了一种方法来限制子进程所花费的时间,但是问题在于,在合理的超时时间内,它可以在被杀死之前产生GB的输出。 有没有办法限制从流程中捕获的输出量?     
已邀请:
        如果您无法检测到何时发生洪灾,那么其他任何人都不可能。由于执行了捕获,因此您当然可以限制捕获,但是这要求您知道何时发生了循环。 如果“常规”速率低于垃圾邮件发生时的速率,也许可以使用速率限制?     
        您可以将子进程的stout连接到类似文件的对象,该对象限制了在调用Popen时它将传递给真实stdout的数据量。类似于文件的对象可以是fifo或cStringIO。     

要回复问题请先登录注册