首页 > 代码库 > jps命令

jps命令

 jps是jdk提供的一个查看当前java进程的小工具,可以当作 Java Virtual Machine Process Status Tool的缩写

 

命令格式:jps [options ] [ hostid ] 

       [options]选项 :
-q:仅输出VM标识符,不包括classname,jar name,arguments in main method 
-m:输出main method的参数 
-l:输出完全的包名,应用主类名,jar的完全路径名 
-v:输出jvm参数 
-V:输出通过flag文件传递到JVM中的参数(.hotspotrc文件或-XX:Flags=所指定的文件 
-Joption:传递参数到vm,例如:-J-Xms512m

        [hostid]:

[protocol:][[//]hostname][:port][/servername]

        命令的输出格式 :
lvmid [ [ classname| JARfilename | "Unknown"] [ arg* ] [ jvmarg* ] ]

1)jps

 

 技术分享

2)jps –l:输出主类或者jar的完全路径名

技术分享

 

3)jps –v :输出jvm参数

技术分享

 

4)jps –q :仅仅显示java进程号

 

 技术分享

5)jps -mlv10.134.68.173

技术分享

 

       注意:如果需要查看其他机器上的jvm进程,需要在待查看机器上启动jstatd。

 

 

 

 

 

 

 

jps命令查看进程得到 process information unavailable的解决办法

 

 jps -J-Djps.debug=true -J-Djps.printStackTrace=true 可以获得Jps错误详细信息

 

 

jps出现process information unavailable(当然我ps -aux了,确定该进程是存在的),网上查找了原因,我的理解是这样:

因为jps的进程信息是存储在/tmp/hsperfdata_{myuser}中,那么当我使用 root 操作jps时,发现其它用户启动的java进程的tmp文件是读不了的。

所以使用 sudo -u cloudera-scm /usr/java/jdk1.7.0_79/bin/jps 即可正常显示jps信息了。【原因就是进程信息只有启动用户才有读取权限 600,连root都没有】

 

 

使用相应的用户查看相应的进程

sudo -u hdfs jps

 

jps命令