Linux 为什么在shell中忽略我的ulimit设置?
我必须执行一个.jar,在执行之前我需要使用ulimit,所以我编写了一个shell脚本:Linux 为什么在shell中忽略我的ulimit设置?,linux,shell,ulimit,Linux,Shell,Ulimit,我必须执行一个.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.091/lib/ext/localedat
#!/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.091/lib/ext/localedata.jar(打开的文件太多)
如果要更改最大打开文件数,需要使用
ulimit-n
例如:
ulimit -n 8192
-c
选项正在更改核心文件大小(核心转储),而不是最大打开文件
您需要将ulimit应用于将调用java应用程序的shell。我有一个错误:ulimit:打开文件:无法修改限制:操作未被允许您需要是root才能更改最大打开文件限制。您可以使用
sudo
调用内部包含ulimit
的脚本(您的脚本)。否则,您将在用户的/etc/security/limits.conf
文件下设置新的限制,因此不需要以root用户身份运行脚本。