我有两个 Python 脚本在 Ubuntu Linux 机器上运行。第一个将其所有输出发送到标准输出,第二个从标准输入读取。它们通过一个简单的管道连接,例如:
./step1.py <some_args> | ./step2.py <some_other_args>
step2 所做的是它在无限循环中读取输入行并处理它们:
while True:
try:
l = sys.stdin.readline()
# processing here
Step1 不时崩溃。当这种情况发生时(不确定是否总是,但至少在几次情况下)不是崩溃/停止,而是 step2 变得疯狂并开始占用 100% 的 CPU,直到我手动杀死它。
为什么会发生这种情况,如何使 step2 更加健壮,以便在管道破裂时停止?
谢谢!