首页 > 编程语言 > 详细

Python的问题解决: IOError: [Errno 32] Broken pipe

时间:2014-10-18 22:18:26      阅读:351      评论:0      收藏:0      [点我收藏+]
遇到一个很奇怪的问题, 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里面写入东西的时候, 就会报错了

希望对遇到类似问题的人有帮助, 这个问题卡了我四个小时.

Python的问题解决: IOError: [Errno 32] Broken pipe

原文:http://www.cnblogs.com/icejoywoo/p/3908290.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!