Centos 修改limits.conf open files后不生效的解决办法

线上几台APACHE服务器报过三、四次open files的问题,导致服务不可用,执行ulimit -n 查看后,发现是默认的1024,找到原因所在了,就去修改下/etc/security/limits.conf吧:

* soft nofile 65535
* hard nofile 65535

重新登录系统,再次执行ulimit -n后发现,还是1024!!!WTF!!!!
百度不得其解,翻出去后又大部分都是英文,苦苦翻译半天还是没有得到答案,搭建测试环境,用相同的系统版本来测试,发现问题消失了!
然后就查各种关于linux关于open files的东西,几乎都在说是没有加入/etc/pam.d/目录下的文件没有limits.so这个库文件的原因,但是对比测试环境和线上环境,是一样的!突然想到了PAM这个东西,之前修改/etc/ssh/sshd_config这个文件的时候看到过UsePAM这个东西,但是一直没有注意是干什么用的,对比两个文件后发现,线上的UsePAM是注释掉的:

#UsePAM yes

去掉注释,重启sshd,竟然报错了,提示unsupport PAM,比较了两个环境下的openssh版本,线上的环境版本比较低,果断升级,重启 sshd服务,
重新登录,终于生效了。


偶然发现一篇文章,推荐:ulimit 到底谁说了算?

你可能感兴趣的:(Linux)