“ulimit”命令的输出和文件“/etc/security/limits.conf”的内容之间有什么区别?

时间:2012-05-18 07:22:41

标签: linux shell

在Linux中获取开放文件描述符的限制我感到很困惑。

哪个值是正确的?

ulimit -n ======> 65535

vim /etc/security/limits.conf

  • soft nofile 50000
  • hard nofile 90000

3 个答案:

答案 0 :(得分:4)

/etc/security/limits.conf中应用的限制由限制认证模块在登录时应用,如果它是PAM配置的一部分。然后调用shell,它可以将它自己的限制应用于shell。

如果你问的是哪一个有效,那么它就是ulimit电话的结果。如果未使用-H选项调用,则显示软限制。

limits.conf设置背后的想法是有一个全局位置来应用限制,例如远程登录

答案 1 :(得分:2)

文件描述符之类的限制可以在用户级别或系统级别设置。您可以在/etc/security/limits.conf设置用户级别限制,这可能是每个用户的不同限制,或者只是适用于所有用户的默认值。您显示的示例的(〜警告)级别限制为50000,但(绝对最大)限制为90000。

但是,可能存在系统限制65535,这将优先于用户限制。我认为系统限制是在/etc/sysctl.conf中设置的,如果我的记忆正常。您可以在那里查看是否受到系统的限制。

此外,ulimit命令可以使用开关专门显示文件描述符的软(-Sn)和硬(-Hn)限制。

答案 2 :(得分:0)

我认为这个conf被系统中的所有应用程序使用。如果你想更改一个特定的应用程序,你可以尝试setrlimit()或getrlimt()。男人doc剂量解释一切。