Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jps、jinfo、jstat、jmap和jstack如何获得有关本地Java进程的信息?_Java_Linux_Process_Jvm - Fatal编程技术网

jps、jinfo、jstat、jmap和jstack如何获得有关本地Java进程的信息?

jps、jinfo、jstat、jmap和jstack如何获得有关本地Java进程的信息?,java,linux,process,jvm,Java,Linux,Process,Jvm,jps如何获取有关所有本地java进程的信息? 它是否连接到某个本地服务器进程以获取信息 jinfo、jstat、jmap和jstack如何获取有关本地java进程的信息?他们是否连接到一些本地服务器进程以获取信息 jstatd是否仅用于提供对本地java进程的远程访问,而不用于提供对本地java进程的本地访问 我正在运行Ubuntu。我的问题来自。jps通过扫描/tmp/hsperfdata目录来查找正在运行的Java进程。每个基于热点的Java进程在此目录中创建一个名称等于进程ID的文件 文

jps
如何获取有关所有本地
java
进程的信息? 它是否连接到某个本地服务器进程以获取信息

jinfo、jstat、jmap
jstack
如何获取有关本地
java
进程的信息?他们是否连接到一些本地服务器进程以获取信息

jstatd
是否仅用于提供对本地
java
进程的远程访问,而不用于提供对本地
java
进程的本地访问


我正在运行Ubuntu。我的问题来自。

jps
通过扫描
/tmp/hsperfdata
目录来查找正在运行的Java进程。每个基于热点的Java进程在此目录中创建一个名称等于进程ID的文件

文件
/tmp/hsperfdata./
包含JVM导出的各种计数器。这些计数器可以由外部进程读取。这正是
jstat
的工作原理。我在中描述了jvmstat性能计数器

因此,
jstat
始终可以读取本地Java进程的计数器,但是为了能够监视远程机器,
jstatd
需要运行


jmap
jstack
jinfo
使用动态连接机制。这些实用程序通过UNIX域套接字连接到目标JVM,并向JVM发送相应的命令。该命令由远程JVM本身执行。查找有关动态附加in和in的更多信息。

为什么要两次问同一个问题?为什么你要问同样的问题两次?我为你的误解道歉。实用程序总是通过Unix域套接字连接到目标JVM吗@apangin@MS90在JDK 8和更早的
jmap
jstack
中,强制模式为
-F
。在这种模式下,他们使用了工作方式完全不同的服务性代理。链接答案和演示文稿包含更多详细信息
jinfo
在JDK 9之前也使用了可维护性代理。由于JDK 9,这些实用程序总是连接到Linux和macOS上的套接字,或者在Windows上运行远程线程。感谢您的友好和知识共享回答,@apangin。继续做好工作。