每个进程在Mac OS X(10.6)中的最大打开文件数是多少?
ulimit比256说,sysctl说10240,但是我的测试程序可以创建9469(在gdb下),10252(没有gdb)文件..
答案 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!