我试图使用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),这些数据会不断更新,因此无法简单地运行它并接受响应。
答案 0 :(得分:0)
要获取所有正在运行的进程的列表,您应该使用命令
PS
它会列出所有内容并完成。该命令有许多命令行选项,例如,不仅为当前用户显示进程,而且为机器上的所有用户显示进程。