这是一个Linux系统常见的故障,网络上也能轻易的找到解决办法,我也只是在工作中遇到了这个问题,所以在博客记录下,以备不时之需。
一、报错截图:
图为resin的报错日志,很明显提示了Too many open files:
二、临时解决
临时的解决办法很简单,先执行ulimit -n 65535,然后重启resin即可。
Ps:请注意启动环境是否生效:切换到resin的启动身份,执行 ulimit -n 查看当前的最大文件打开数是否已优化。
三、永久生效
第①种做法:可讲ulimit -n 65535 添加到 /etc/profile 的最后即可;
echo "ulimit -n 65535" >>/etc/profile
#刷新配置
source /etc/profile
第②种做法:修改/etc/security/limits.conf文件,在最后添加以下内容即可:
* soft noproc 65535
* hard noproc 65535
* soft nofile 65535
* hard nofile 65535
或者直接执行如下代码亦可:
echo '* soft noproc 65535
* hard noproc 65535
* soft nofile 65535
* hard nofile 65535'>>/etc/security/limits.conf
使用第①种,登陆普通账号的时候,会报无权限错误,所以推荐使用第②种方法。
最后啰嗦下,不管使用哪一种方法,修改生效后,需要重启应用才行,否则程序将延续使用旧的环境设置。