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

yipeiwu_com6年前Python基础

问题

今天用nohup后台执行python程序,并将标准输出和错误输出重定向到一个log文件,但发现log文件隔好久才会更新,很煎熬。。。然而正常屏幕输出时候非常及时。

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

运行脚本举例:

nohup python test.py > test.log 2>&1 &

原因

python的输出进行了缓冲,导致test.log并不能够马上看到输出。

解决方案

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

nohup python -u test.py > test.log 2>&1 &

并实时追踪文件输出到屏幕:

tailf test.log

以上这篇解决nohup执行python程序log文件写入不及时的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

使用Python搭建虚拟环境的配置方法

python 的虚拟环境可以为一个 python 项目提供独立的解释环境、依赖包等资源,既能够很好的隔离不同项目使用不同 python 版本带来的冲突,而且还能方便项目的发布。 virt...

详解Python实现多进程异步事件驱动引擎

详解Python实现多进程异步事件驱动引擎

本文介绍了详解Python实现多进程异步事件驱动引擎,分享给大家,具体如下: 多进程异步事件驱动逻辑 逻辑 code # -*- coding: utf-8 -*- ''' a...

Python为何不能用可变对象作为默认参数的值

Python为何不能用可变对象作为默认参数的值

先来看一道题目: >>> def func(numbers=[], num=1): ... numbers.append(num) ... return numbe...

python条件和循环的使用方法

前面已经介绍过几种基本语句(print,import,赋值语句),下面我们来介绍条件语句,循环语句。一. print和import的更多信息1.1 使用逗号输出A.打印多个表达式,用逗号...

Python从使用线程到使用async/await的深入讲解

前言 为了简化并更好地标识异步IO,从Python 3.5开始引入了新的语法async和await,可以让coroutine的代码更简洁易读。 请注意,async和await是针对cor...