当前位置: 首页 > 面试题库 >

带有Java的Linux ulimit无法正常工作

仲孙毅
2023-03-14
问题内容

我在linux ubuntu 17.10上运行代码

public class TestExec {
public static void main(String[] args) {
    try {
        Process p = Runtime.getRuntime().exec(new String[]{"/bin/sh", "-c", "ulimit", "-n"});
        BufferedReader in = new BufferedReader(
                            new InputStreamReader(p.getInputStream()));
        String line = null;
        while ((line = in.readLine()) != null) {
            System.out.println(line);
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
}
}

此代码返回“无限”

但是每当我从终端运行命令时,我都会得到1024。

为什么这些数字不同?


问题答案:

如果从命令行运行相同的命令,则会得到相同的结果:

$ "/bin/sh" "-c" "ulimit" "-n"
unlimited

这是因为-c仅查看紧随其后的参数ulimit。的-n不是此参数的一部分,并且被代替而不是分配作为位置参数($0)。

要运行ulimit -n-n需要成为该参数的一部分:

$ "/bin/sh" "-c" "ulimit -n"
1024

换句话说,您应该使用:

new String[]{"/bin/sh", "-c", "ulimit -n"}


 类似资料:
  • 问题内容: 我正在尝试使用node-imagemagick库调整图像的大小,但无法正常工作。 我用来调整大小的代码是 引发错误 问题答案: 在Windows上,您还需要安装imagemagick exe。nodejs imagemagick库只是imagemagick exe的包装器。因此,只有安装了imagemagick exe并转换并标识可执行文件在路径中后,它才能起作用。

  • 问题内容: 我正试图将网页嵌入iframe中,但它根本不起作用。具有相对路径的内部页面正常显示。但是这个简单的代码不起作用: 应该显示iframe的地方是空的。我在页面源代码中查找,之后没有任何内容 怎么会这样? 问题答案: Google使用X-FRAME-OPTIONSHTTP标头禁止将其页面放置在iframe中:: //developer.mozilla.org/en/The_X-FRAME-

  • 问题内容: 我试图使用jQuery和CodeIgniter使用JSON进行我的第一个AJAX调用。但是出于某些奇怪的原因,它不起作用。 jQuery代码: CodeIgniter代码: 我尝试手动访问该页面,但似乎可以正常工作,我得到了: 我还尝试使用Firebug进行查看,但什么也没看到。 我不知道我在做什么错…真的很需要帮助。谢谢。 问题答案: 您可能需要设置HTTP内容类型才能使其正常工作:

  • 问题内容: 我有一个包含一些字段的JPanel。JPanel的高度是有限的,因此我必须在其周围放置一个JScrollPane以便人们向下滚动。 如下所示,它完美显示。但是您无法向下(或向上)滚动。 详细信息面板: 问题答案: 您的DetailPanel没有与之关联的布局管理器,这意味着在您向其添加子项时它不会扩展,这意味着JScrollPane没有任何可滚动的地方。调用DetailPanel或重写

  • 问题内容: 这是我的代码。 这应该返回,但实际上正在返回。为什么这不起作用? 问题答案: 不支持正则表达式,请使用:

  • 问题内容: 这真让我抓狂。我在具有以下结构的文件夹中有一个NetBeans项目: 在src中,我的代码在软件包中。我想做的是使用 来自com.my.package包中的类,但它只是拒绝工作!“ new.png”图像位于资源文件夹中。我在这里想念什么吗? 经过大量的游玩并四处移动“ new.png”图像以查看何时可以找到该图像,它终于可以工作了,但仅当我将图像放入build文件夹时才可以。那么,我该