问题描述
在什么情况下 fork do
调用会抛出 Errno::EPIPE: Broken pipe
?我在 AWS 实例上使用 Resque 并且奇怪的是,虽然 Resque 在临时服务器上运行良好,但当它尝试让工作人员在生产服务器上分叉子进程时,它不断抛出这些损坏的管道错误,即使他们使用的是同一个 AMI。我已经输入了足够多的日志语句来识别当 Resque 尝试 fork 时抛出的错误:
@child = fork do
unregister_signal_handlers if term_child
perform(job,&block)
exit! unless run_at_exit_hooks
end
所以错误来自第一行 (https://github.com/resque/resque/blob/master/lib/resque/worker.rb#L909)。我不清楚为什么 fork
调用会抛出 Errno:EPIPE
。服务器有足够的内存、CPU 和硬盘备用。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)