私は存在しないと思われるものを探しています:コマンドラインから使用するための非ブロッキングバッファ付き名前付きパイプ(fifo)。そのようなことはありますか?
使用例は次のとおりstdout
です。バックグラウンドで長時間実行して、大量の出力をに出力するプロセスがあるとします。私は出力をあまり気にせず、それを保存したくはありません(おそらく十分なスペースがありません)そしてその仕事をするためにそれを残します。そのため、この理論上のバッファリングされた非ブロッキングの名前付きパイプに出力をリダイレクトし、定期的にそれを利用したいと思います。
だから基本的に私はこのように開始したい(10M
バッファのサイズである):
mkmagicfifo magicfifo 10M
spewingprocess > magicfifo &
...そして定期的に立ち寄って、何が起こっているのかを確認します...
tail -f magicfifo
... すべての出力を magicfifo
保存せずに(つまり、通常のファイルではなく)、いっぱいになってタップされないときに噴出プロセスをブロックしません(したがって、通常の名前付きパイプではありません)。
私はすべてのデータをどこかに保存する必要があるので、それを含むソリューションはそれを含むtail
またはそれprune
を行うとは思いません(まあ、私はそれを含む回避策を考えることができます)そして、すべての出力を生成するプロセスのリダイレクトを壊す(私はこれを証明して/試していない認めるよ)おそらく、ファイルを書き換える必要があります。tail
tail
prune
これを行うためのユーティリティを書くことができると期待していますが、* nixにはファイルやパイプなどのクールな側面がたくさんありますが、これが存在すると思いますが、私はそれについて知らないだけです。
So:そのようなことはありますか?