ulimit -n通过java程序返回不同的值

时间:2018-06-03 17:51:58

标签: java linux runtime.exec ulimit

我跑了:

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程序读取错误的值,但我不知道为什么

0 个答案:

没有答案