如何立即在logfiles中获取stdout / stderr?

时间:2016-12-16 13:41:29

标签: linux bash

要运行一些Python程序,我使用以下bash脚本:

python3 /MyProg.py 0>/dev/null 1>>output_log_file 2>error_log_file

但是我只能在编程终止后才能获得信息。程序运行时,这些文件中没有任何数据。

我可以覆盖此行为以立即获取日志数据吗?我的操作系统是Raspbian。

2 个答案:

答案 0 :(得分:3)

我怀疑程序需要定期刷新stdout和stderr,通过

import sys
sys.stdout.flush()
sys.stderr.flush()

答案 1 :(得分:1)

似乎有,因为它使用完全缓冲而不是行缓冲。尝试在bash命令之前使用unbuffer,你应该立即在屏幕上获得输出。