我遇到了一个问题,即如何更改Linux中用户默认进程数。我尝试编辑/etc/security/limits.conf文件,并添加以下行:
malintha hard nproc 10000
保存后,我在终端上尝试执行以下命令:
ulimit -u
它会给出先前的值(1024),而不是更新后的值。我该如何永久地解决这个问题?
这是我的limits.conf文件
这里的问题在于你在
malintha hard nproc 10000
中指定了 "hard"。 "hard" 是 "max" 限制,而 "soft" 是默认限制。因此,你可以将其保留为 "hard",然后使用 ulimit -u 1000
。在那之后的进程(仅针对该 bash shell)将具有增加的限制。或者选择 "soft",这将成为由您的用户启动的所有进程的默认值 [请记得在每次更改时注销并重新登录]。
对于那些试图弄清楚为什么他们被限制为[例如] 1024个最大线程的用户,还应注意它读取/etc/security/limits.conf文件和其他/etc/security/limits.d/*文件。
编辑该文件需要服务器重启,您可以使用更简单的方法:
chuser nofiles=10000 malintha
从控制台断开连接,然后使用用户名malintha
重新连接。使用ulimit -n
,输出应该是10000
。
ulimit
是特定于 shell 的,另一方面,更改 /etc/security/limits.conf 与 PAM 相关,请参阅man pam
了解详细信息。更改 /etc/security/limits.conf 不应影响 ulimit。 - rakib_