被该问题困扰的人还是挺多的,所以又对这个问题进行了一些更深入的分析,希望可以解决读者的问题 新版本: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里面写入东西的时候, 就会报错了 希望对遇到类似问题的人有帮助, 这个问题卡了我四个小时.
Python的问题解决: IOError: [Errno 32] Broken pipe
最新推荐文章于 2024-08-08 10:01:35 发布
博客详细描述了在使用Python和web.py时遇到的BrokenPipe错误。问题出现在通过SSH远程执行包含nohup的启动命令时,由于SSH会话结束导致stderr的pipe被关闭,从而引发错误。作者提出了解决方案并分享了问题排查过程,对于遇到类似问题的开发者具有参考价值。
摘要由CSDN通过智能技术生成