“软/硬nofile”在Linux上意味着什么

时间:2010-06-24 05:39:54

标签: linux kernel

当我尝试在RedHat EL5上安装软件时,我得到的错误是软/硬nofile的预期值是4096而默认值是1024.我设法增加了数量,但我不知道是什么参数是。他们是指软链接和硬链接吗?

我改变它的方式是:

A)修改/etc/security/limits.conf

user soft nofile 5000
user hard nofile 6000

B)修改/etc/pam.d/system-auth

session required /lib/security/$ISA/pam_limits.so

C)修改/etc/pam.d/login

session required pam_limits.so

进行更改后(切换到root)。似乎我必须重新启动机器才能使其生效。但是一些网上帖子说它应该在做出改变后立即生效。如果有人能澄清它,我将不胜感激。

3 个答案:

答案 0 :(得分:34)

这些是:进程可能一次打开的文件数量的“软”和“硬”限制。两者都限制相同的资源(与硬链接或任何东西无关)。不同之处在于:软限制可以在以后更改,直到硬限制值,由运行这些限制的进程和硬限制只能降低 - 进程无法通过增加硬限制为自己分配更多资源(运行进程除外)具有超级用户权限(以root用户身份))。

可以为其他系统资源设置类似的限制:系统内存,CPU时间等。请参阅setrlimit(2)手册页或shell ulimit内置命令的说明(例如{ {1}}手册页。

答案 1 :(得分:4)

不需要重新启动,但/etc/security/limits.conf仅在/lib/security/pam_limits.so运行时处理,这是在登录时,并且值由子进程继承。在新登录后,该登录下的任何内容都将继承指定的值。

答案 2 :(得分:2)

另外,一些发行版包括/etc/security/limits.d其中"片段"可以放置限制配置。您可以创建如下文件:

$ ll /etc/security/limits.d/
-rw-r--r--. 1 root root 191 Aug 18 10:26 90-nproc.conf
-rw-r--r--  1 root root  70 Sep 29 12:54 90-was-filedesc.conf

包含您要设置的限制的文件:

$ more /etc/security/limits.d/90-nproc.conf
# Default limit for number of user's processes to prevent
# accidental fork bombs.
# See rhbz #432903 for reasoning.

*          soft    nproc     1024
root       soft    nproc     unlimited

$ more /etc/security/limits.d/90-was-filedesc.conf
root       hard    nofile    20000

我发现使用这种方法来管理这些类型的覆盖比使用/etc/security/limits.conf进行干扰更加清晰。

此外,如果您想将soft / hard设置为相同的值,则可以使用-作为类型。

$ more /etc/security/limits.d/90-was-filedesc.conf
root       -       nofile    20000