![即使需要 pam_limits.so,ulimit 也不会读取打开文件描述符 limits.conf 设置](https://linux22.com/image/539411/%E5%8D%B3%E4%BD%BF%E9%9C%80%E8%A6%81%20pam_limits.so%EF%BC%8Culimit%20%E4%B9%9F%E4%B8%8D%E4%BC%9A%E8%AF%BB%E5%8F%96%E6%89%93%E5%BC%80%E6%96%87%E4%BB%B6%E6%8F%8F%E8%BF%B0%E7%AC%A6%20limits.conf%20%E8%AE%BE%E7%BD%AE.png)
我正在尝试提高 ubuntu 机器上所有用户的打开文件描述符最大值。
我已将以下几行添加到/etc/security/limits.conf
:
* soft nofile 100000
* hard nofile 100000
并且,基于这个问题我已检查/etc/pam.conf
以下设置pam_limits
:
$ grep "pam_limits" /etc/pam.d/*
/etc/pam.d/atd:session required pam_limits.so
/etc/pam.d/common-session:session required pam_limits.so
/etc/pam.d/cron:session required pam_limits.so
/etc/pam.d/login:session required pam_limits.so
/etc/pam.d/sshd:session required pam_limits.so
/etc/pam.d/su:session required pam_limits.so
/etc/pam.d/sudo:session required pam_limits.so
而且我的 file-max 似乎没问题:
$ cat /proc/sys/fs/file-max
762659
但当我检查时,我仍然有默认的 1024 ulimit -a
:
$ ulimit -a | grep files
open files (-n) 1024
我还可以检查什么?
答案1
我发现系统似乎不喜欢 中的用户通配符limits.conf
。将其更改为:root soft nofile 100000
并且root hard nofile 100000
工作正常。
答案2
添加另一个答案,因为尽管 bantic 解决了他的问题,但我们的设置和症状完全相同。limits.conf 中 nofile 的软和硬 ulimit 设置为 100000。/etc 下或用户主目录中的用户没有覆盖或其他 ulimit 设置,但 ulimit 很低。硬 ulimit 为 4096,软 ulimit 为 1024。
Centos 7。
实际上,如果您以用户身份 su,则添加带有软 nofile 100000 和硬 nofile 100000 的 /etc/security/limits.d/20-nofile.conf 似乎可以解决问题,但如果您以用户身份 ssh 登录,则无法解决问题。
最终我们在 /etc/ssh/sshd_config 中找到了 UsePAM: no,将其更改为 UsePAM: yes,然后重新启动 sshd 服务便解决了这个问题。