MacOS 固化配置,彻底解决 too many open files in system 的问题

2024年3月19日  l101781 minutes

作为一个开发者,经常在 MacOS 遇到 Too many open files in system 的报错,尤其是碰到黑洞 node_modules 时,如何固化配置彻底解决,直接上代码。

输入 launchctl limit 即可看到当前的限制,我这里 maxfiles 是改过以后的。


$ launchctl limit
  cpu         unlimited      unlimited
  filesize    unlimited      unlimited
  data        unlimited      unlimited
  stack       8388608        67104768
  core        0              unlimited
  rss         unlimited      unlimited
  memlock     unlimited      unlimited
  maxproc     1392           2088
  maxfiles    10240         102400

开始创建文件 sudo vi /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>10240</string>
      <string>102400</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>ServiceIPC</key>
    <false/>
  </dict>
</plist>

验证文件格式和内容,并应用生效。

plutil /Library/LaunchDaemons/limit.maxfiles.plist
sudo launchctl load -w /Library/LaunchDaemons/limit.maxfiles.plist

再次输入 launchctl limit 查看是否生效。