我编辑/etc/security/limits.conf
了
root hard nofile 20000
root soft nofile 10000
并添加了
session required pam_limits.so
到/etc/pam.d/common-session
和/etc/pam.d/common-session-noninteractive
。
重启后重新登录ulimit -n
仍然显示1024。
如果我这样做su
并重试ulimit -n
,它会显示 10000。但重新登录后,它会返回到 1024。
答案1
检查手册:man limits.conf
这将显示该配置文件中的第一个字段是<domain>
或简化的:应用该设置的用户或组。因此,当您root
在那里使用时,完全可以预期它仅适用于root
其他用户,而不适用于任何其他用户。
尝试以下操作将其应用于所有用户,或者更好地找到一些中间立场并应用于正确的用户/组。
* hard nofile 20000
答案2
对于 RHEL 和相关发行版,现在有一个新目录 /etc/security/limits.d
此目录中的文件会默默地覆盖 /etc/security/limits.conf 文件中的信息(!)。
检查 90-nproc.conf,您会发现罪魁祸首。
您可以在此目录中创建新文件 - 它们按数字顺序读取,因此对于应用程序特定值,创建一个名为 95-appname.conf 之类的文件,并将所需的值放入其中。
请注意,任何新文件都必须具有扩展名“.conf”,否则系统将忽略它们。