如何使用Java获取Ubuntu上所有正在运行的进程的列表?

时间:2015-07-12 14:12:28

标签: java ubuntu-14.04

我试图使用Java从Ubuntu获取所有正在运行的进程的列表。

我试图跑#34;顶部"并解析响应。

我的问题是" top"命令启动一个可以被用户杀死的进程。

我试过了:

public void execute()
{
    try{
    ProcessBuilder build = new ProcessBuilder("top");
    Process proc = build.start();
    BufferedReader reader = new BufferedReader(new InputStreamReader(proc.getInputStream()));
    String line;

    while((line = reader.readLine()) != null)
    {System.out.println("wait");
        System.out.println(line);
    }
    proc.waitFor();
    reader.close();

    }
    catch(IOException e)
    {
        e.printStackTrace();
    } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } 
}

我无法获得响应,因为命令仍在执行。

如何停止流程然后获得响应? (这又是因为我想更新信息)

编辑:独特的部分:" top"命令显示有关正在运行的进程的详细信息(如mem consumption,cpu),这些数据会不断更新,因此无法简单地运行它并接受响应。

1 个答案:

答案 0 :(得分:0)

要获取所有正在运行的进程的列表,您应该使用命令

PS

它会列出所有内容并完成。该命令有许多命令行选项,例如,不仅为当前用户显示进程,而且为机器上的所有用户显示进程。