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