我跑了:
public class RuntimeExecTest {
public static void main(String[] args) throws IOException {
Process exec = Runtime.getRuntime().exec(new String[]{"bash", "-c", "ulimit -n"});
BufferedReader in = new BufferedReader(
new InputStreamReader(exec.getInputStream()));
String line = null;
while ((line = in.readLine()) != null) {
System.out.println(line);
}
}
}
在Linux上作为java程序。 此命令返回50000,这是一个存储在我的/etc/security/limits.conf中的数字打开文件描述符及其硬限制。 但每当我跑:
"bash" "-c" "ulimit -n"
来自linux终端的我从/etc/security/limits.conf得到30000这是我的软限制
为什么我通过java程序获得硬限制并通过linux终端获得软限制?
我认为错误的命令构建不是问题。只是java程序读取错误的值,但我不知道为什么