ulimit第一次调用ok第二次调用失败,为什么?

时间:2011-07-11 21:23:19

标签: macos unix ulimit osx-snow-leopard

在macosx 10.7上,使用bash

第一次调用ulimit -n成功,而第二次调用失败。

a:$ ulimit -n 
2560
a:$ ulimit -n 5000
a:$ ulimit -n 
5000
a:$ ulimit -n 6000
bash: ulimit: open files: cannot modify limit: Operation not permitted

但是如果我尝试使用新的shell(或其他shell)ulimit -n 6000,它会成功:

a:$ ulimit -n 
2560
a:$ ulimit -n 6000
a:$ ulimit -n 
6000

为什么?

1 个答案:

答案 0 :(得分:4)

来自bash手册页:

  

一旦设定硬限制就不能增加;软限制可能是   增加到硬限制的价值。如果既不是-H也不是-S   如果指定,则设置软限制和硬限制。

大多数现代* NIX实际上不再使用ulimit了。我猜OS X没有ulimit hard max set,所以你的第一个调用设置了soft和hard max,所以你的第二次调用每次都会失败。没有[limit]参数的第一个调用可能是打印soft max。