UbuntuLinuxマシンで2つのPythonスクリプトを実行しています。1つ目はすべての出力をstdoutに送信し、2つ目はstdinから読み取ります。それらは単純なパイプ、つまり次のようなもので接続されています。
./step1.py <some_args> | ./step2.py <some_other_args>
step2は、無限ループで入力行を読み取り、それらを処理します。
while True:
try:
l = sys.stdin.readline()
# processing here
Step1は時々クラッシュします。それが起こったとき(常にかどうかはわかりませんが、少なくともいくつかの機会に)、step2はクラッシュ/停止する代わりに、手動で強制終了するまでCPUを100%使用し始めます。
なぜこれが起こっているのですか?パイプが壊れたときに停止するようにstep2をより堅牢にするにはどうすればよいですか?
ありがとう!