Yosemite修改系统的ulimit - Tan9le的博客
Yosemite修改系统的ulimit - Tan9le的博客
macOS ulimit
Yosemite修改系统的ulimit
Mac OS下面修改ulimit方法有很多,从10.10开始,发生了一些改变,以临时命令行修改为例:
ulimit 1000000 unlimited
则会得到一个错误的提示:
-bash: ulimit: open files: cannot modify limit: Invalid argumen
Google后得知大家都遇到了这个问题,正好【这里有人有相同的问题,有人给出了解决方案】,我的操作步骤如下:
$ kern.maxfiles=65536 | tee /etc/sysctl.conf
$ kern.maxfilesperproc=65536 | tee /etc/sysctl.conf
$ sysctl -w kern.maxfiles=65536
$ sysctl -w kern.maxfilesperproc=65536
$ ulimit -n 65536 65536
当然,也可以将ulimit -n 65536 65536 放入~/.bash_profile或者其他shell的自启脚本中,亦或加入开启自启脚本中
还有通过launchd修改的方法:(请注意该方法在yosemite 10.10.x上无效)
编辑/etc/launchd.conf(没有则新建)
添加:
limit maxfiles unlimited unlimited
limit maxproc unlimited unlimited
然后保存后重启,使用launchctl limit查看效果
最后一个方法,还是在launchd上做文章,但是是使用plist的方法,该方法在yosemite 10.10.x上证实有效:
新增或编辑文件:/Library/LaunchDaemons/limit.maxfiles.plist,内容为:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<>
<>Label</>
<string>limit.maxfiles</string>
<>ProgramArguments</>
<array>
<string>launchctl</string>
<string>limit</string>
<string>maxfiles</string>
<string>65536</string>
<string>65536</string>
</array>
<>RunAtLoad</>
</>
<>ServiceIPC</>
<false/>
</>
</plist>
新增或编辑文件:/Library/LaunchDaemons/limit.maxproc.plist,内容为:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple/DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<>
<>Label</>
<string>limit.maxproc</string>
<>ProgramArguments</>
<array>
<string>launchctl</string>
<string>limit</string>
<string>maxproc</string>
<string>2048</string>
<string>2048</string>
</array>
<>RunAtLoad</>
< />
<>ServiceIPC</>
<false />
</>
</plist>
这两个文件的所有者应该为:root:wheel
文件的读写权限应该为-rw-r–r–,即644,修改文件权限
sudo chmod 644 /Library/LaunchDaemons/limit.maxfiles.plist
sudo chmod 644 /Library/LaunchDaemons/limit.maxproc.plist
然后再和方法一一样,将ulimit -n 65536 65536 和 ulimit -u 2048 2048 放入~/.bash_profile或者其他shell的自启脚本中,亦或加入开启自启脚本中

