仅当服务器启动时打开过多文件

仅当服务器启动时打开过多文件

我有一个 Java Web 应用程序设置为在 /etc/init.d/application 中的脚本中启动,该应用程序因“打开太多文件”错误而失败,但如果我以我的用户身份执行相同的脚本,则不会出现任何问题。

我已经增加了 /etc/security/limits.conf 中的限制,但我不明白为什么这种情况只在机器启动时发生(我尝试过很多次)

这可能与执行脚本的运行级别有关吗?

操作系统是Redhat 5.4

答案1

/etc/security/limits.conf文件仅影响正常登录。如果您想对启动脚本(该脚本从不执行任何正常登录)设置限制,则必须在脚本本身中执行此操作。

答案2

要修复此问题,您需要执行启动脚本中的命令。

假设它是一个 bash 脚本,然后执行您的应用程序,则将ulimit -n 8192其添加为命令。如果它是一个 java 程序,则Runtime.getRuntime().exec("ulimit -n 8192")在启动时使用。

相关内容