解决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
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值