Answers:
通过ulimit
命令进行的更改:
$ ulimit -n 4096
$ ulimit -Hn 16384
仅适用于当前用户和会话。为了使其永久,您必须/etc/security/limits.conf
通过添加限制来进行修改:
* soft nofile 4096
* hard nofile 16384
但是,通配符*
不适用于root
用户。为此,您必须明确声明:
* soft nofile 4096
* hard nofile 16384
root soft nofile 4096
root hard nofile 16384
这些限制将在重新启动后应用。
如果要应用更改而无需重新启动,请/etc/pam.d/common-session
通过在文件末尾添加以下行来进行修改:
session required pam_limits.so
下次登录时,您应该会看到更新的限制,您可以检查它们(软限制和硬限制):
$ ulimit -a
$ ulimit -Ha
/etc/pam.d/common-session-noninteractive
它才能正常工作。
pam_limits.so
在中启用/etc/pam.d/common-session
。我已经在/etc/security/limits.conf
用户x中配置了nofile
64000的硬限制和软限制。sudo -u x
然后ulimit -a
显示没有应用更改。我意识到了这一点,su
并且sudo
具有不同的pam配置,因此为了使其正常工作,我需要启用pam_limits.so
in/etc/pam.d/common-session-noninteractive
。如果您想知道用例是什么-我使用ansible和sudo更改用户。