被該問題困擾的人仍是挺多的,因此又對這個問題進行了一些更深刻的分析,但願能夠解決讀者的問題
新版本: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裏面寫入東西的時候, 就會報錯了但願對遇到相似問題的人有幫助, 這個問題卡了我四個小時.