【问题标题】:Why are my ulimit settings ignored in the shell?为什么我的 ulimit 设置在 shell 中被忽略了?
【发布时间】:2016-06-28 08:30:43
【问题描述】:

我要执行一个.jar,在这个执行之前我需要使用ulimit,所以我写了一个shell脚本:

#!/bin/sh
ulimit -S -c unlimited
/usr/java/jre1.8.0_91/bin/java -jar /home/update.jar

但是 ulimit 似乎被忽略了,因为我有这个错误:

java.lang.InternalError: java.io.FileNotFoundException: /usr/java/jre1.8.0_91/lib/ext/localedata.jar(打开的文件太多)

【问题讨论】:

    标签: linux shell ulimit


    【解决方案1】:

    如果你想改变你需要使用ulimit -n的最大打开文件数。

    例子:

    ulimit -n 8192
    

    -c 选项正在更改核心文件大小(核心转储),而不是最大打开文件数。

    您需要将 ulimit 应用到将调用 java 应用程序的 shell。

    【讨论】:

    • 我有这个错误:ulimit:打开文件:无法修改限制:不允许操作
    • 您需要是 root 才能更改最大打开文件限制。
    • 您可以使用sudo 调用包含ulimit 的脚本(您的脚本)。否则,您将在 /etc/security/limits.conf 文件下为您的用户设置新限制,因此您无需以 root 身份运行脚本。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-30
    • 2016-06-20
    • 1970-01-01
    • 2021-12-20
    • 2018-03-12
    • 1970-01-01
    • 2022-12-23
    相关资源
    最近更新 更多