私は私が手ファイルを尾行にITERM出力が適切に
{ cd /usr/local/path/to/code; echo "hi1"; sudo chmod 777 /tmp/dissolve.log; echo "hi2"; python someapp/runner.py dissolve; echo "hi3"; } > /tmp/dissolve.log &
を通じてbashのコンソールで次のコマンドを通じ実行していますリダイレクトされ得ていませんpython someapp/runner.py dissolve
の出力が得られない場合、cmd + cの出力は、tail
ログに出力されます。 runner.py
から
コードスニペット:
if __name__ == '__main__':
program_name = sys.argv[1]
if program_name == 'dissolve':
obj = SomeClass() # this is properly imported
obj.some_function() # this has lot of `print` statements, which i intened to catch in '/tmp/dissolve.log'
は/tmp/dissolve.log
以外どこ他のいくつかの値を渡すsome_function()
内部の初期print
ですか?
これがなぜ起こっているのでしょうか?
バッファリングの問題のようです。 'obj.some_function()'の内部でバッファを定期的にフラッシュして、それが役立つかどうか確認できますか? pythonコマンドの前に 'stdbuf -oL'を付けて、行のバッファリングを強制することもできます。詳細については、[標準ストリームでのバッファリング](http://www.pixelbeat.org/programming/stdio_buffering/) – codeforester