为什么bash有时不会将python程序的输出刷新到文件中
发布时间:2020-12-15 22:54:00 所属栏目:安全 来源:网络整理
导读:我有一个crontab作业调用 python脚本并输出到文件: python run.py current_date.log 现在有时当我这样做 tail -f current_date.log 我看到文件填满了输出,但有时日志文件存在,但长时间保持空白.我确信python脚本在开始运行后正在打印,并创建了日志文件.任何
我有一个crontab作业调用
python脚本并输出到文件:
python run.py &> current_date.log 现在有时当我这样做 tail -f current_date.log 我看到文件填满了输出,但有时日志文件存在,但长时间保持空白.我确信python脚本在开始运行后正在打印,并创建了日志文件.任何想法为什么它在某些时候保持空虚? 解决方法
Python在检测到它没有写入tty时缓冲输出,因此您的日志文件可能不会立即收到任何输出.您可以将脚本配置为刷新输出,也可以使用-u参数调用python以获取无缓冲输出.
$python -h ... -u : unbuffered binary stdout and stderr (also PYTHONUNBUFFERED=x) see man page for details on internal buffering relating to '-u' ... (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |