前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python的问题解决: IOError

Python的问题解决: IOError

作者头像
py3study
发布2020-01-09 16:22:25
8120
发布2020-01-09 16:22:25
举报
文章被收录于专栏:python3python3

错误一:

遇到一个很奇怪的问题, web.py代码里面报错

IOError: [Errno 32] Broken pipe

启动命令: 

nohup python xxx.py >> xxx.log &

ssh登录到机器上, 启动, 不会出现

远程ssh执行启动脚本, 就会出现IOError问题

查看进程pid, ll /proc/<pid>/fd 发现, stderr也就是fd为2的文件, 竟然是个pipe, 是个broken pipe, 错误的地方找到了

猜测可能是ssh登录过去, nohup会redirect stderr, 默认重定向到stdout, 不过ssh会话的stdout应该是pipe, 因为需要把输出从远端机器回传到本机

nohup把stderr重定向到了这个pipe上, 当ssh会话结束时, pipe自然会被关闭, 这样当程序代码中往stderr里面写入东西的时候, 就会报错了

错误二:

针对以上问题单机执行时候,发现不再报错,但是为了一定的处理,前面使用nginx作为反向代理,结果又出现

IOError: [Errno 32] Broken pipe

通过F12 发现,post 加载某个js 文件超时,并出现504 Time-out

检查js文件没有问题,

回忆,之前没有使用nginx前,此问题已经解决,为何突然又出现,

经过资料查询,使用以上nginx 配置解决

应该是读取时间设置过短,导致超时:

location / {
            proxy_read_timeout 300;
            ......
            .....
           }

这种问题,让人蛋疼。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-08-27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档