启动命令: 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重定向到一个输出/文件即可

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

被折叠的 条评论
为什么被折叠?



