转载自:https://blog.csdn.net/ybdesire/article/details/51399229
在linux下运行了5个java程序: A,B,C,D,E。由于java程序的运行,是通过java虚拟机解释字节码而执行的,所以通过top命令,只能看到运行的java虚拟机,无法真正分清楚哪个进程是哪个特定的java程序。
$ top
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
74630 user 20 0 5418m 1.2g 8912 S 72.4 8.0 1288:55 java
35573 user 20 0 5972m 68m 4952 S 6.0 0.4 889:01.43 java
25454 user 20 0 5907m 146m 5096 S 2.7 0.9 1533:30 java
75423 user 20 0 6397m 152m 4944 S 2.0 1.0 2758:36 java
53166 user 20 0 5907m 279m 5128 S 1.7 1.8 27:11.51 java
top命令用于查看最活跃进程的实时信息,而ps提供的是进程的快照。要查看具体某个进程是用什么命令启动的,可以通过ps命令来查看。
$ ps -ef
UID PID PPID C STIME TTY TIME CMD
root 2061 2 0 2015 ? 00:48:43 [nfsiod]
root 2062 2 0 2015 ? 00:00:00 [nfsv4.0-svc]
root 2082 1 0 2015 tty1 00:00:00 /sbin/mingetty /dev/tty1
user 74630 1 0 Mar18 ? 00:11:37 java -cp conf:lib/*;A.jar
可以看到输出中用java命令启动java程序A的记录。将ps的输出用grep继续过滤,就能看到所有java进程的信息了。
$ ps -ef | grep java