每个进程最多打开文件

时间:2011-07-08 11:57:00

标签: macos file max ulimit

每个进程在Mac OS X(10.6)中的最大打开文件数是多少?

ulimit比256说,sysctl说10240,但是我的测试程序可以创建9469(在gdb下),10252(没有gdb)文件..

2 个答案:

答案 0 :(得分:9)

现在很清楚。

ulimit命令是在shell中构建的。您可以使用ulimit -n命令为当前shell(以及从此shell启动的每个程序)设置maxfiles。

10252个文件 - 这是我的错误..当我从shell启动我的测试程序时,它是253个最大打开文件(253 + stdin + stdout + stderr = 256)。

9469文件 - 我的测试程序在Xcode下运行的结果,似乎Xcode在运行程序之前设置了max maxfiles。

ulimit不是系统范围的设置,这就是为什么要设置maxfiles的系统范围值,你必须使用launchctl(系统中的第一个进程,尝试'launchctl limit')或sysctl。

答案是256个文件。

答案 1 :(得分:0)

在Mac上运行一些python脚本时,我遇到了一个相关的错误。错误是在抱怨打开文件的限制。

看到ulimit -n告诉我 256 ,我感到非常惊讶。

如果最终在此处解决此问题,那么下一步就是增加该限制。

如何增加该限制

为补充Dmitry的回答,我将链接following gist with the solution(在Mac OSX Catalina上为我工作)。

上面链接的食谱将指导您如何增加限量。

/Library/LaunchDaemons/limit.maxfiles.plist
/Library/LaunchDaemons/limit.maxproc.plist

应用load.sh和系统 rebot 后,我得到ulimit -n的话说524288。这使python脚本感到高兴。 GL!