助けて!Linuxのすごい人。
Javaのアプリケーションでバッチ処理をしてて、それが途中でハングアップする。
straceを見るとfd1番にログメッセージをwriteしているがそれがいつまで経っても終わらない。
lsofでfd1番を見ると名前付きでないパイプ。
ここから僕はどうすれば
@moguno ジャンク記憶からの妄想で間違ってるかもですが、パイプのあちら側のプロセスがストリームを読んでくれなくて書く側がブロックしてるのかもです。名前なしパイプは子プロセスとデータをやり取りするときに作る気がします。読む側が途中で読むのをやめて同期的に書く側がブロックしたり、読む側がぜんぜん読まないで非同期的に書いていたデータでバッファがいっぱいになったりしてるのかも。パイプの読む側のプロセスがどうなってるのか調べてみたい気がします。ぜんぜん間違ってるかもですが。
とてもありがとうございます。
パイプの反対側が誰かわからず悩んでたんですが、システムの作りを思いかえして、こいつを呼び出してる奴にたどり着きました。