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

被该问题困扰的人仍是挺多的,因此又对这个问题进行了一些更深刻的分析,但愿能够解决读者的问题
新版本:Python 的 Broken Pipe 错误问题分析
遇到一个很奇怪的问题, 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里面写入东西的时候, 就会报错了但愿对遇到相似问题的人有帮助, 这个问题卡了我四个小时.