while(f>oldlimit){intdecr_step=16;limit.rlim_cur=f;limit.rlim_max=f;if(setrlimit(RLIMIT_NOFILE,&limit)!=-1)break;setrlimit_error=errno;/*Wefailedtosetfilelimitto'f'.Trywitha*smallerlimitdecrementingbyafewFDsperiteration.*/if(f
2 回答
叮当猫咪
TA贡献1776条经验 获得超12个赞
我猜是因为Redis不想检查自己有没有更改rlim_max的权限,所以直接尝试好了。如果直接把软限制改成和硬限制一样大,那还要判断,如果maxfiles>rlim_max,自己能不能把rlim_max改大,如果不能,再设置rlim_cur为rlim_max。检查和设置之间还有竞态。
添加回答
举报
0/150
提交
取消