0
清理停业/僵尸进程或接近长期运行POPEN与西纳特拉
我有以下的在我的红宝石西纳特拉应用流的即时它工作得很好,但每个请求留下解散/僵尸背后大tar文件子进程。只要浏览器弹出保存文件对话框,该过程就会失效。如何在彪马
我对彪马2.12.2运行此
我已经尝试了系统调用,并在使用块代替POPEN但它关闭tar命令完成之前的过程和收益,因此客户端接收空的文件。
任何想法如何我可以自动清理已停用的子进程或保留对io对象的句柄,但仍然返回它,因此它开始流式传输到客户端?
get '/:dir_name' do
headers['Content-Type']="application/octet-stream"
headers["Content-Disposition"]="attachment;filename=#{params[:dir_name]}.tar"
IO.popen("tar -C /home/my/files -cf - #{params[:dir_name]}")
end