在Linux上,“软/硬nofile”是什么意思?

当我试图在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 

完成更改后(通过切换到根目录)。 看来我必须重新启动机器才能生效。 但有的post在网上说应该在改变之后马上生效。 希望有人能澄清一下。

Solutions Collecting From Web of "在Linux上,“软/硬nofile”是什么意思?"

它们是:一个进程可能一次打开的文件数量的“软”和“硬”限制。 两者都限制相同的资源(与硬链接无关)。 所不同的是:软限制稍后可能会改变,直到硬限制值,通过这些限制运行的进程和硬限制只能降低 – 进程不能通过增加硬限制来分配自己更多的资源(运行的进程除外以超级用户权限(以root身份))。

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

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

作为补充,一些发行版包括/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清理干净得多。

另外,如果你想设置软/硬到相同的值,你可以使用-作为类型。

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