博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
找出Java进程ID pid的N种方法
阅读量:7187 次
发布时间:2019-06-29

本文共 2742 字,大约阅读时间需要 9 分钟。

拿到进程ID pid能做些什么呢?

暴力的杀掉它,比如:kill -9 123, taskkill /PID 123, 123也就是你要kill的pid。

使用 jinfo:可以输出并修改运行时的java 进程的opts(选项,项目项)。

如:jinfo 56860

Attaching to process ID 56860, please wait...

Debugger attached successfully.

Server compiler detected.

JVM version is 25.31-b07

Java System Properties:

java.runtime.name = Java(TM) SE Runtime Environment

java.vm.version = 25.31-b07

sun.boot.library.path = D:\Java\jdk\jre\bin

java.vendor.url = http://java.oracle.com/

java.vm.vendor = Oracle Corporation

path.separator = ;

java.rmi.server.randomIDs = true

file.encoding.pkg = sun.io

java.vm.name = Java HotSpot(TM) 64-Bit Server VM

sun.os.patch.level = Service Pack 1

sun.java.launcher = SUN_STANDARD

user.script =

user.country = CN

user.dir = D:\javaProject\javatrans

java.vm.specification.name = Java Virtual Machine Specification

java.runtime.version = 1.8.0_31-b13

……省略N行

使用jmap:打印出某个java进程(使用pid)内存内的所有'对象'的情况(如:产生那些对象,及其数量)。

如:jmap 56860

Attaching to process ID 56860, please wait...

Debugger attached successfully.

Server compiler detected.

JVM version is 25.31-b07

0x000000000f000000      24K     C:\Program Files\NVIDIA Corporation\CoProcManage

r\detoured.dll

0x0000000057e70000      840K    D:\Java\jdk\jre\bin\msvcr100.dll

0x0000000069d90000      212K    D:\Java\jdk\jre\bin\jdwp.dll

0x000000006a0f0000      8552K   D:\Java\jdk\jre\bin\server\jvm.dll

0x000000006c760000      140K    D:\Java\jdk\jre\bin\instrument.dll

0x000000006e540000      52K     D:\Java\jdk\jre\bin\management.dll

0x000000006e550000      68K     D:\Java\jdk\jre\bin\nio.dll

0x000000006ee40000      104K    D:\Java\jdk\jre\bin\net.dll

0x000000006fc30000      32K     D:\Java\jdk\jre\bin\npt.dll

0x0000000070e10000      36K     D:\Java\jdk\jre\bin\dt_socket.dll

0x0000000070e20000      88K     D:\Java\jdk\jre\bin\zip.dll

0x0000000071220000      160K    D:\Java\jdk\jre\bin\java.dll

0x0000000071400000      60K     D:\Java\jdk\jre\bin\verify.dll

0x0000000076e70000      1000K   C:\Windows\system32\USER32.dll

0x0000000076f70000      1152K   C:\Windows\system32\kernel32.dll

……省略N行

使用jstat:一个极强的监视VM内存工具。可以用来监视VM内存内的各种堆和非堆的大小及其内存使用量。

如:jstat -gcnew 56860

 S0C    S1C    S0U    S1U   TT MTT  DSS      EC       EU     YGC     YGCT

 512.0  512.0    0.0   96.0  1  15  512.0  24064.0   2313.0     45    0.167

嗯嗯,大概的说了几种用法,下面我们看看找到PID的几种方法。

1、任务管理器

Windows下通过在任务管理器的进程中查找:

执行main方法,或启动Tomcat,都是查找javaw.exe 这个进程。

Linux下,如:ps -aux | grep java

2、jps:与unix上的ps类似,用来显示本地的java进程,可以查看本地运行着几个java程序,并显示他们的进程ID。

Windows和Linux下用法基本一致。

3、jconsole:一个java GUI监视工具,可以以图表化的形式显示各种数据。并可通过远程连接监视远程的服务器VM。

可以在命令行窗口执行:jconsole 打开它,然后点击菜单》新建连接,在弹出的窗口中就可以看到进程的PID了。

Linux估计要支持图形界面才可以了,还没试过。

4、Windows下也要以使用命令来查找

如:tasklist | findstr javaw.exe

5、Linux下的如:pidof,不过我还没用过。

6、Windows下的如:Process Monitor,Process Explorer

可能还有很多其它的工具,你知道的,这里没有的,快来告诉我!

=================文档信息===================

版权声明:非商用自由转载-保持署名-注明出处

署名(BY) :testcs_dn(微wx笑)

文章出处:[无知人生,记录点滴](http://blog.csdn.net/testcs_dn)

你可能感兴趣的文章
自动化运维工具puppet(五)
查看>>
linux网络命令(八)之top、htop
查看>>
【Windows和Linux下定时删除某天前的文件的脚本】
查看>>
长视频的危机:直播和短视频的爆发式增长
查看>>
医疗信息化 医学 医院管理 资料下载
查看>>
centos6.5搭建docker私有库
查看>>
《Kotlin 极简教程 》第4章 基本数据类型与类型系统
查看>>
2012春晚十大流行语
查看>>
XP下关于安装.net 3.5/4.0 报错:安装未完成
查看>>
Collections类中常用方法总结
查看>>
我的友情链接
查看>>
Android 数据查询query函数参数解析
查看>>
PHP 方法重载介绍
查看>>
教会你Redhat Enterprise Linux关闭SELinux
查看>>
搭建一个git 私有仓库
查看>>
springboot及微服务
查看>>
打算做一个网站
查看>>
18大解读
查看>>
编写自己的内核模块
查看>>
mongo复制集认证配置备忘
查看>>