これは質問のための最良の言い回しではないかもしれません。私は一度に2つのファイルを私の画面で見ようとしています。 私が実行します。マルチテールはどのようにその出力をバッファしますか?
multitail ~/path/to/somefile.err ~/path/to/somefile.out
私は次の行でPythonスクリプトを持っている:
sys.stdout = open('~/path/to/somefile.out', 'a')
sys.stderr = open('~/path/to/somefile.err', 'a')
私のmultitailコマンドに関係なく、私は内のファイルを入れているための、出力のみの私の.outファイルに思えますコマンド。
私は私のスクリプトが実際にファイルに書き込みをしていることを確認しました。
echo "text" >> ~/path/to/somefile.err
突然私が(前に現れなかったものを含む)multitail画面で.ERRファイルからのすべての出力を参照してください。何も興味深いのは、私は、次のコマンドを実行したときにということでした!
ここでは何が起こっているのですか?
P.S.これはマルチテールを使った初めてのことなので、多分簡単なことを見落としたかもしれません。それが何を意味している場合、私はあなたがbuffering=0
(バッファなしの場合)またはbuffering=1
のいずれかを渡す必要があり
標準エラー出力(.ERR)は、おそらくバッファリングされており、十分な情報は、それがすべて表示されますその後、バッファリングされた後。あなたのマシン上で 'unbuffer'を探してください。もし存在すれば、個々の出力cmdsを' unbuffer 'することができます( 'python'で何をしているのかわかりません)。おそらく、 'unbuffer python3 mypython.py'を行うことができます。 GNU coreutilsには、同じことをする 'stdbuf'もありますが、別の方法で呼び出す必要があるかもしれません。 'man stdbuf'をチェックしてください。がんばろう。 – shellter