不灭的焱

革命尚未成功,同志仍须努力 下载Java21

作者:AlbertWen  添加时间:2026-07-08 10:26:54  修改时间:2026-07-15 21:54:12  分类:04.电脑/软件使用  编辑

目录

Mac某软件报错:

[2026-07-08 10:16:50] nofile soft limit is too low; low fd limit may cause Too many open files
[2026-07-08 10:16:50] 修复建议:优先用终端启动并确认 ulimit -n 足够大,或提升 launchctl/session 的 maxfiles 限制。
[2026-07-08 10:16:50] ALLOW_LOW_NOFILE=true,继续启动,但后续仍可能触发 Too many open files

AI回复:

看到您完整的错误日志了。这是在 macOS 系统上启动某个服务(很可能是 Elasticsearch)时的典型警告。

虽然设置 ALLOW_LOW_NOFILE=true 可以绕过检查继续启动,但正如日志所说——后续仍可能触发 "Too many open files" 错误,导致服务崩溃。

我给您提供治标治本两种方案:

方案一:治标(绕过检查,继续启动)

在启动命令之前执行:

export ALLOW_LOW_NOFILE=true
./您的启动脚本

或一行命令执行:

ALLOW_LOW_NOFILE=true ./您的启动脚本

方案二:治本(永久提升 macOS 的文件描述符限制)⭐ 推荐

1. 先查看当前限制

ulimit -n

通常默认是 2561024,对于 Elasticsearch 等需要 65535 或更高。

2. 永久提升(macOS)

创建/编辑 limit.maxfiles 配置文件:

sudo vim /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>65536</string>
      <string>65536</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>ServiceIPC</key>
    <false/>
  </dict>
</plist>

加载配置:

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

重启终端或执行:

sudo launchctl limit maxfiles 65536 65536
ulimit -n 65536

3. 验证是否生效

ulimit -n

应该显示 65536

方案三:仅针对当前会话(临时)

sudo launchctl limit maxfiles 65536 65536
ulimit -n 65536

然后启动您的服务,不需要再设置 ALLOW_LOW_NOFILE=true 了。

总结建议

做法 效果 推荐度
只设 ALLOW_LOW_NOFILE=true 能启动,但随时可能崩溃 ❌ 不推荐
临时提升 ulimit -n 当前终端有效 ✅ 临时方案
永久提升 maxfiles 一劳永逸 ⭐ 强烈推荐

建议您先执行 方案二 永久提升限制,之后无论是否设置 ALLOW_LOW_NOFILE 都不会再有这个警告。

如果执行过程中遇到权限问题或报错,请告诉我具体的错误信息,我帮您进一步排查。