关于Linux下后台执行Python脚本的缓冲问题
【问题简述】
创新互联长期为上千客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为福田企业提供专业的成都网站设计、成都网站建设,福田网站改版等技术服务。拥有10年丰富建站经验和众多成功案例,为您定制开发。
在 Linux 下后台执行 Python 脚本,重定向到日志文件,日志文件迟迟没有内容。
【方案一】(测试有效)
nohup python3 -u t.py &> log.log & # 限制大小 nohup python3 -u t.py 2>&1 | rotatelogs -n 1 /var/log/logfile 1M &
【方案二】(测试无效)
方案二来自 stackoverflow,虽然测试无效,但其他地方也许会用到,记录一下。
stdbuf -oL nohup python3 t.py &> log.log &
【关于重定向】
& 是一个描述符,如果1或2前不加&,会被当成一个普通文件。 1>&2 意思是把标准输出重定向到标准错误。 2>&1 意思是把标准错误输出重定向到标准输出。 &>filename 意思是把标准输出和标准错误输出都重定向到文件filename中
将标准输出连同标准错误重定向到空,常用形式:
shell命令 >/dev/null 2>&1
最简形式(cmd 不支持这种格式):
shell命令 &>/dev/null
【相关阅读】
Linux 下日志管理工具(rotatelogs/logrotate/cronolog)
*** walker ***
新闻名称:关于Linux下后台执行Python脚本的缓冲问题
文章转载:http://scjbc.cn/article/jgigjc.html