解决Linux下nohup执行python程序日志log文件写入不及时的问题

问题

用nohup后台执行python程序,并将标准输出和错误输出重定向到一个log文件,代码如下:

nohup python ./train.py >> ./train.log 2>&1 &

(命令具体含义参考使用nohup进行python后台运行_zaf赵的博客-CSDN博客)

但发现log文件隔好久才会更新,很煎熬。。。然而正常屏幕输出时候非常及时。

不确定程序是不是在正常运行。

原因

python的输出进行了缓冲,导致test.log并不能够马上看到输出,而是存一定数据后再写入到log中。这种缓冲对大量数据读写有保护作用,但是也会造成写入延迟。

解决方案

为python添加-u 参数,使得python不启用缓冲。

nohup python -u ./train.py >> ./train.log 2>&1 &

实时观察 

通过tailf train.log命令。

tailf train.log

你可能感兴趣的:(机器学习,python,linux,运维,服务器)