方法1
- 命令行中执行
ulimit -n xxx
, 但是仅对当前 session 生效,新开 session 或者重启后会恢复为系统值
- 在 .bashrc / .zshrc 等脚本中加上
ulimit -n xxxx
, 这样每次新开 session 即可自动设置最大文件描述符显示
- 加入到 launchd 服务中, 永久修改
方法2
创建两个 plist文件,文件名分别为 limit.maxproc.plist
, limit.maxfiles.plist
, 内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| <?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>200000</string> <string>200000</string> </array> <key>RunAtLoad</key> <true/> <key>ServiceIPC</key> <false/> </dict> </plist>
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| <?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.maxproc</string> <key>ProgramArguments</key> <array> <string>launchctl</string> <string>limit</string> <string>maxproc</string> <string>20480</string> <string>20480</string> </array> <key>RunAtLoad</key> <true /> <key>ServiceIPC</key> <false /> </dict> </plist>
|
将以上两个文件移动到 /Library/LaunchDaemons
目录下,确保两个文件的权限如下:
1 2
| -rw-r--r-- 1 root wheel 592B Sep 29 16:39 limit.maxfiles.plist -rw-r--r-- 1 root wheel 589B Sep 29 16:40 limit.maxproc.plist
|
重启系统,重启后自动生效。
注意:如果只需要修改 max files
, 仅添加 limit.maxfiles.plist
文件即可