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

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

* soft nofile 65535
* hard nofile 65535
  • 1
  • 2

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

#UsePAM yes
  • 1

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

原文地址:https://www.cnblogs.com/liqing1009/p/7805066.html