2011-07-11 52 views
4

在macosx 10.7上,使用bashulimit先打電話ok第二次打電話失敗,爲什麼?

第一次調用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

偏離主題 - 嘗試http://apple.stackexchange.com? –

+0

同意或[unix.stackexchange.com](http://unix.stackexchange.com) –

+0

[此超級用戶問題]的副本(http://superuser.com/questions/309106/strange-behaviour-with-ulimit -on-MAC-OS-X-10-6 /)。 –

回答

4

從bash的手冊頁:

硬限制,不能一旦設置增加;一個軟限制可能會增加到硬限制的值。如果既不指定-H也不指定 ,則設置軟限制和硬限位。

大多數現代* NIX實際上不再使用ulimit了。我猜想OS X沒有ulimit hard max設置,所以你的第一個呼叫設置了soft和hard max,所以你的第二個呼叫每次都失敗。沒有[limit]參數的第一個調用可能會打印soft max。

+0

明白了,非常感謝。 – user379217