ps是否有一组参数可以更清楚地显示Java进程



当运行ps命令时,我得到如下输出:

[nick]$ ps
  PID TTY          TIME CMD
 3287 pts/3    00:00:00 bash
12308 pts/3    00:00:00 ps
19544 pts/3    00:00:00 STS
19548 pts/3    00:45:25 java
19753 pts/3    00:04:10 java
21149 pts/3    00:15:25 java

这对我没有多大帮助,因为我不知道每个Java进程到底是什么。运行ps T会提供更多信息,但现在太多了!

[nick]$ ps T
  PID TTY      STAT   TIME COMMAND
 3287 pts/3    Ss     0:00 bash
12319 pts/3    R+     0:00 ps T
19544 pts/3    S      0:00 /home/nick/springsource/sts-3.0.0.RELEASE/STS
19548 pts/3    Sl    45:25 /usr/lib/jvm/java-6-openjdk-amd64/bin/java -Dosgi.requiredJavaVersion=1.5 -Xms256m -Xmx1536m -XX:MaxPermSize=512m -jar /home/nick/springsource/sts-3.0.0.RELEASE//plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar -os linux -w......
19753 pts/3    Sl     4:10 /usr/lib/jvm/java-6-openjdk-amd64/bin/java -agentlib:jdwp=transport=dt_socket,suspend=y,address=localhost:48135 -Dcatalina.base=/home/nick/Documents/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp3 -Dcatalina.home=/home/nic......
21149 pts/3    Sl    15:25 /usr/lib/jvm/java-6-openjdk-amd64/bin/java -agentlib:jdwp=transport=dt_socket,suspend=y,address=localhost:57346 -Dcatalina.base=/home/nick/Documents/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp5 -Dcatalina.home=/home/nic......

有没有一种方法可以只显示正在运行的Java包或类的文件名?类似这样的东西:

[nick]$ ps
  PID TTY          TIME CMD
 3287 pts/3    00:00:00 bash
12308 pts/3    00:00:00 ps
19544 pts/3    00:00:00 STS
19548 pts/3    00:45:25 java abc.jar
19753 pts/3    00:04:10 java def.java
21149 pts/3    00:15:25 java ghi.jar

如果用ps参数不能做到这一点,有没有办法用grep实现这一点?

没有,没有ps。它要么是所有args,要么是none(arglist的模截断)。但是,过滤长ps输出以留下您想要的内容呢?使用sed、awk、perl、cut和其他工具可以做很多事情。手册中有所有的细节。

示例:要打印字段1到4以及最后一个字段,请使用

ps T | awk '{print $1, $2, $3, $4, $NF}'

请注意,这与Unix让一个工具做好一件事的理念是如何匹配的:ps打印流程信息,而awk选择您想要的字段。

您要查找的可能是jps cli实用程序或图形jconsole

相关内容

最新更新