IOError: [Errno 32] Broken pipe

在使用nohup启动Python脚本时,如果遇到IOError,可能是因为stderr被重定向到了一个brokenpipe。通过检查进程的fd发现,stderr是一个pipe。解决方法是将stderr重定向到一个输出文件,如使用`nohupbash/var/rlong.sh2>&1`,确保所有输出都被正确处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

启动命令: nohup python xxx.py > xxx.log &

ssh登录到机器上, 启动, 不会出现
远程ssh执行启动脚本, 就会出现IOError问题

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

猜测可能是ssh登录过去, nohup会redirect stderr, 然后输出不出去了???

失败的:nohup bash /var/rlong.sh &
成功的:nohup bash /var/rlong.sh 2>&1

只要2>XX重定向到一个输出/文件即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值