java虚拟机进程状态工具jps(java virtual machine process status tool)的基本操作和示例

作者: admin 分类: JVM 发布时间: 2019-05-10 22:54  阅读: 20 views

作为一个java程序猿,经常需要查看本地或服务器环境上是否有java程序进程正在运行。可以使用ps -ef|grep java查看,也可以使用jps命令jps可以快速查看安装有javajdk的服务器上的所运行的java项目/进程/目录等信息。也可以配合jstat等命令进行操作.

 

jps工具列出了目标系统上的已检测HotSpot Java虚拟机(JVM)。该工具仅限于报告具有访问权限的JVM的信息。

如果在未指定hostid的情况下运行jps,它将在本地主机上查找已检测的JVM。如果以hostid启动,它将使用指定的协议和端口在指定的主机上查找JVM。假定jstatd进程在目标主机上运行。

jps命令将报告在目标系统上找到的每个已检测JVM的本地VM标识符或lvmid。 lvmid通常是但不是操作系统的JVM进程的进程标识符。如果没有选项,jps将列出每个Java应用程序的lvmid,后跟应用程序的类名或jar文件名的简短形式。类名或JAR文件名的缩写形式省略了类的包信息或JAR文件路径信息。

jps命令使用java启动程序查找传递给main方法的类名和参数。如果使用自定义启动程序启动目标JVM,则类名(或JAR文件名)和main方法的参数将不会在这种情况下,jps命令将输出字符串Unknown作为类名或JAR文件名以及主方法的参数。

jps命令生成的JVM列表可能受授予运行该命令的主体的权限的限制。该命令仅列出原则具有访问权限的JVM,这些JVM由操作系统特定的访问控制机制确定。jps工具可能在之后的jdk版本中不可用。

jps 输出运行中的java进程id和名称

chenhailongdeMacBook-Pro:bin chenhailong$ jps
11018 QuorumPeerMain
24716 Jps
12349 
12718 Elasticsearch

jps -q 禁止传递给main方法的类名,JAR文件名和参数的输出,仅生成本地VM标识符的列表

chenhailongdeMacBook-Pro:bin chenhailong$ jps -q
24714
11018
12349
12718

jps -m输出传递给main方法的参数。 嵌入式JVM的输出可能为null

chenhailongdeMacBook-Pro:bin chenhailong$ jps -m
24720 Jps -m
11018 QuorumPeerMain /Users/chenhailong/Downloads/tools/zookeeper-3.4.11/bin/../conf/zoo.cfg
12349 
12718 Elasticsearch

jps -l 将应用程序主类的完整包名称或完整路径名称输出到应用程序的JAR文件

chenhailongdeMacBook-Pro:bin chenhailong$ jps -l
11018 org.apache.zookeeper.server.quorum.QuorumPeerMain
24732 sun.tools.jps.Jps
12349 
12718 org.elasticsearch.bootstrap.Elasticsearch

jps -v输出传递给JVM的参数

chenhailongdeMacBook-Pro:bin chenhailong$ jps -v
11018 QuorumPeerMain -Dzookeeper.log.dir=. -Dzookeeper.root.logger=INFO,CONSOLE -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.local.only=false
12349  -Dosgi.requiredJavaVersion=1.8 -Dosgi.instance.area.default=@user.home/eclipse-workspace -XX:+UseG1GC -XX:+UseStringDeduplication -XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts -Dosgi.requiredJavaVersion=1.8 -Dosgi.dataAreaRequiresExplicitInit=true -Xms256m -Xmx1024m -Xdock:icon=../Resources/Eclipse.icns -XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts -Declipse.p2.max.threads=10 -Doomph.update.url=http://download.eclipse.org/oomph/updates/milestone/latest -Doomph.redirection.index.redirection=index:/->http://git.eclipse.org/c/oomph/org.eclipse.oomph.git/plain/setups/
12718 Elasticsearch -Xms1g -Xmx1g -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+AlwaysPreTouch -Xss1m -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djna.nosys=true -XX:-OmitStackTraceInFastThrow -Dio.netty.noUnsafe=true -Dio.netty.noKeySetOptimization=true -Dio.netty.recycler.maxCapacityPerThread=0 -Dlog4j.shutdownHookEnabled=false -Dlog4j2.disable.jmx=true -Djava.io.tmpdir=/var/folders/ll/dms152m534b4nrtscw36q12c0000gn/T/elasticsearch.yfLN10mx -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=data -XX:ErrorFile=logs/hs_err_pid%p.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintTenuringDistribution -XX:+PrintGCApplicationStoppedTime -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=32 -XX:GCLogFileSize=64m -Des.path.home=/Users/chenhailong/Downloads/tools/elasticsearch -Des.path.conf=/Users/chenhailong/Downloads/tools/elasticsearch/config -Des.distribution.flavor=default -Des.distribution.type=tar
24735 Jps -Dapplication.home=/Library/Java/JavaVirtualMachines/jdk1.8.0_171.jdk/Contents/Home -Xms8m

jps -V 输出通过flags文件传递给JVM的参数(.hotspotrc文件或-XX:Flags = <filename>参数指定的文件)

chenhailongdeMacBook-Pro:bin chenhailong$ jps -V
24738 Jps
11018 QuorumPeerMain
12349 
12718 Elasticsearch

 


   原创文章,转载请标明本文链接: java虚拟机进程状态工具jps(java virtual machine process status tool)的基本操作和示例

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注

更多阅读