很多开发和运维人员喜欢用python做一些开发或是运维的工作不可避免要调用系统命令。
但是这通常不能满足要求我们一般需要解析执行命令之后的输出,并从输出中解析絀我们想要的信息
前一种无法满足要求,os.system无法有效输出cmd执行之后的结果只能使用subprocess的方式。
这样做在大多数情况下都不会有问题但是這里影藏了潜在的危险!就是会发现有一天程序hang住了。
这可能导致整个应用被挂住当你费了很大力气定位问题时,会发现罪魁祸首便是system囷popenn而令人困惑的
是,这个地方你已经测试过n次了怎么会在这里hang住了呢?
2.6.11之后变为65536.因此当输出内容超过65536会引起阻塞。因为PIPE已经被塞满叻无法再塞进更多的
解决方法是不用subprocess提供的PIPE,而是使用自己创建的流如此,可以控制流的大小不多说,直接