too many open files
too many open files(打开的文件过多)是Linux系统中常见的错误,从字面意思上看就是说程序打开的文件数过多,不过这里的files不单是文件的意思,也包括打开的通讯链接(比如socket),正在监听的端口等等,所以有时候也可以叫做句柄(handle),这个错误通常也可以叫做句柄数超出系统限制。
众所周知Mac系统是基于linux内核开发的,但是在使用上却有很多不同有liunx系统的操作,比如修改程序打开文件最大数目。出于系统安全的考虑,mac默认的程序打开的文件/socket连接数量超过系统设定值为256。由于一些特殊的研发场景,通常需要增大这个数值,临时调整的办法是使用ulimit -n xxxxx命令,如果需要永久调整通常是修改**/etc/security/limits.conf**文件,但是在mac系统中则需要特别的方法。
OS X Sierra 修改maxfiles的方法
第一步:需要创建一个配置文件
touch /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">
<dict>
<key>Label</key>
<string>limit.maxfiles</string>
<key>ProgramArguments</key>
<array>
<string>launchctl</string>
<string>limit</string>
<string>maxfiles</string>
<string>64000</string>
<string>524288</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>ServiceIPC</key>
<false/>
</dict>
</plist>
第二步:修改配置文件所有者
sudo chown root:wheel /Library/LaunchDaemons/limit.maxfiles.plist
第四步:载入配置
sudo launchctl load -w /Library/LaunchDaemons/limit.maxfiles.plist
安装上述修改完成后则可以永久修改程序打开的最大文件数