如何永久设置 ulimit 值?

如何永久设置 ulimit 值?

在 Debian Wheezy 上,ulimit -a提供:

open files                      (-n) 1024

我将其添加到 /etc/security/limits.conf

*                hard    nofile          64000

然后重新启动。

并且ulimit -a仍然给出最大打开文件数为 1024。有人可以解释一下吗?

答案1

选项一: 您也没有将软限制设置得更高。

可能的解决方案:

在 /etc/security/limits.conf 添加

* soft nofile 2048

测试

ulimit -n 2048 

选项二: 您以用户身份登录,并且在某些“配置”文件(profile、.bashrc等)中将软限制设置为较低的值。

可能的解决方案是在您的 etc 文件夹和/或主文件夹中使用 grep 来查找 ulimit。

警告:根据其中的文件/目录的数量,您可能只想考虑特定的目录/文件

附言:这里有很多类似的问题,你可能需要阅读一下。

特别硬限制与软限制

请阅读此处以了解更多可能的其他解决方案 打开的文件过多

答案2

Debian 中有一个错误。要增加它,ulimit您需要将其添加到/etc/pam.d/common-session文件中:

session required pam_limits.so

另外/etc/security/limits.conf

*               soft    nofile          65535
*               hard    nofile          65535

然后重新启动系统。

答案3

在我使用 Debian 10 上的 Apache 的情况下,上述方法没有帮助,尽管这有效:

echo "APACHE_ULIMIT_MAX_FILES='ulimit -n 16384'" >> /etc/apache2/envvars
service apache2 restart

我检查过:

cat /proc/$pid/limits

..$pid其中是 Apache 进程之一的进程 ID。

相关内容