jps命令原理

一、说明

jps位于jdk的bin目录下,其作用是显示当前系统的java进程情况,及其id号。 jps相当于Solaris进程工具ps。不象”pgrep java”或”ps -ef grep java”,jps并不使用应用程序名来查找JVM实例。因此,它查找所有的Java应用程序,包括即使没有使用java执行体的那种(例如,定制的启动 器)。另外,jps仅查找当前用户的Java进程,而不是当前系统中的所有进程。

二、命令位置

很多Java命令都在jdk的JAVA_HOME/bin/目录下面,jps也不例外,他就在bin目录下,所以,他是java自带的一个命令。

三、功能

jps(Java Virtual Machine Process Status Tool)是JDK 1.5提供的一个显示当前所有java进程pid的命令,简单实用,非常适合在linux/unix平台上简单察看当前java进程的一些简单情况。

四、原理

jdk中的jps命令可以显示当前运行的java进程以及相关参数,它的实现机制如下:
*java程序在启动以后,会在java.io.tmpdir指定的目录下,就是临时文件夹里,生成一个类似于hsperfdata_User的文件夹,这个文件夹里(在Linux中为/tmp/hsperfdata_{userName}/),有几个文件,名字就是java进程的pid,因此列出当前运行的java进程,只是把这个目录里的文件名列一下而已。 至于系统的参数什么,就可以解析这几个文件获得。*
先看临时目录:

[root@hadoop002 hsperfdata_hadoop]# pwd
/tmp/hsperfdata_hadoop
[root@hadoop002 hsperfdata_hadoop]# ll
total 160
-rw-------. 1 hadoop hadoop 32768 Jun  3 19:00 51863
-rw-------. 1 hadoop hadoop 32768 Jun  3 19:00 51945
-rw-------. 1 hadoop hadoop 32768 Jun  3 19:00 52035
-rw-------. 1 hadoop hadoop 32768 Jun  3 19:00 52294
-rw-------. 1 hadoop hadoop 32768 Jun  3 19:00 52413

在使用jps命令查看

[hadoop@hadoop002 hadoop-2.6.0-cdh5.7.0]$ jps
52035 SecondaryNameNode
53525 Jps
52294 ResourceManager
51863 NameNode
51945 DataNode
52413 NodeManager

对应的进程号都存在。

五、JPS失效处理

  • 现象: 用ps -ef|grep java能看到启动的java进程,但是用jps查看却不存在该进程的id。待会儿解释过之后就能知道在该情况下,jconsole、jvisualvm可能无法监控该进程,其他java自带工具也可能无法使用
  • 分析: jps、jconsole、jvisualvm等工具的数据来源就是这个文件(/tmp/hsperfdata_userName/pid)。所以当该文件不存在或是无法读取时就会出现jps无法查看该进程号,jconsole无法监控等问题

原因:

  1. 磁盘读写、目录权限问题 若该用户没有权限写/tmp目录或是磁盘已满,则无法创建/tmp/hsperfdata_userName/pid文件。或该文件已经生成,但用户没有读权限
  2. 临时文件丢失,被删除或是定期清理 对于linux机器,一般都会存在定时任务对临时文件夹进行清理,导致/tmp目录被清空。这也是我第一次碰到该现象的原因。常用的可能定时删除临时目录的工具为crontab、redhat的tmpwatch、ubuntu的tmpreaper等等
    这个导致的现象可能会是这样,用jconsole监控进程,发现在某一时段后进程仍然存在,但是却没有监控信息了。
  3. java进程信息文件存储地址被设置,不在/tmp目录下 上面我们在介绍时说默认会在/tmp/hsperfdata_userName目录保存进程信息,但由于以上1、2所述原因,可能导致该文件无法生成或是丢失,所以java启动时提供了参数(-Djava.io.tmpdir),可以对这个文件的位置进行设置,而jps、jconsole都只会从/tmp目录读取,而无法从设置后的目录读物信息,这是我第二次碰到该现象的原因

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/556667.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

make *** 没有指明目标并且找不到 makefile。 停止。_Makefile目标文件搜索(VPATH和vpath)...

我们都知道一个工程文件中的源文件有很多,并且存放的位置可能不相同(工程中的文件会被放到不同的目录下),所以按照之前的方式去编写 Makefile 会有问题。我们之前列举的例子,所有的源文件基本上都是存放在与 Makefile 相同的目录下。只要依赖…

电脑设置访问苹果服务器未响应,苹果连接电脑没反应,教您苹果连接电脑没反应怎么解决...

但只要是电子设备,那就一定会出现问题,所以苹果手机也不能例外。不过小编我有想好解决的方法,并且我已经将解决苹果手机连接电脑没反应的方法写在了文章的后面,小伙伴们往下看即可。苹果手机作为手机品牌界的翘楚,它一…

Linux下netstat命令详解

一、介绍 Netstat是控制台命令,是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。Netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。 二、输出…

hbase可视化工具_做数据可视化,三大热门BI工具试用总结

什么BI分析工具好用?今天通过3款BI产品Power BI、FineBI、亿信ABI为范例,进行对比分析。一、产品背景Power BI是微软的,14年15年开始初见苗头,之前主要是基于Excel的高级功能,包括Power Query,Power Pivot&…

Navicat导入数据库数据结构sql报错datetime(0)

错误发生情况: 将数据库从mysql5.7导出为sql,在mysql5.5上进行导入,报sql语句错误:datetime(0)… 错误发生原因 mysql5.7和mysql5.5的datetime、timestamp不兼容 mysql5.7导出的格式为 : datetime(0),mysql5.5则无法…

文件服务器ping延时大,windowns 2008 ping 127.0.0.1延迟大的解决方法。

以查清是windowns 2008的BUG。文章编号: 979612 – 查看本文应用于的产品传输控制协议 (TCP) 环回滞后时间和在 Windows Server 2008、 Windows Server 2008 R2、 Windows Vista 和 Windows 7 中的用户数据报协议 (UDP) 滞后时间是比 TCP 环回延迟和 Windows Server 2003 中的 …

眉骨高者为大贵之相_男人此处“高大”,大富大贵,前途不可限量!!

原标题:男人此处“高大”,大富大贵,前途不可限量!!文/一得老师DC在沉寂多年后,终于崛起了!三天破6.5亿,两周破16亿;《海王》爆了!海王饰演者杰森莫玛&#xf…

IDEA Translation插件安装及设置鼠标悬浮提示的自动翻译

1、安装插件 Translation 2.设置鼠标悬浮提示 3.在代码界面鼠标悬停在方法上 就会自动翻译提示

在虚拟机中ftp服务器的配置,ftp服务器在虚拟机中配置文件

ftp服务器在虚拟机中配置文件 内容精选换一换由于主机中 /etc/ssh/sshd_config 配置文件中对服务器与客户端交互的活动心跳时间做出了限制,所以在一个ansible任务中如果在“规定时间”中主机没有任何响应则ssh服务断开(注:上述“规定时间”是指在/etc/ss…

xshell进入桌面_Xshell怎么远程桌面连接Linux系统

大部分人都只记得Windows和IOS系统,其实大家都把Linux系统遗忘了,导致很多人连怎么连接Linux系统都不太清楚明白。Windows系统可以用远程桌面,Linux系统怎么来远程桌面呢?下面就一起来学习远程连接Linux系统的方法。Linux系统和Wi…

@PostConstruct注解详解

简介 javaEE5引入了PostConstruct和PreDestroy两个作用于Servlet生命周期的注解,实现Bean初始化之前和销毁之前的自定义操作 使用场景 在项目中主要是在Servlet初始化之前加载一些缓存数据等 API使用说明 PostConstruct 注释用于在依赖关系注入完成之后需要执行…

用户密码到底要怎样存储?

作为互联网公司的信息安全从业人员经常要处理撞库扫号事件,产生撞库扫号的根本原因是一些企业发生了信息泄露事件,且这些泄露数据未加密或者加密方式比较弱,导致黑客可以还原出原始的用户密码。 目前已经曝光的信息泄露事件至少上百起&#…

dateframe取某列数据_Python获取时序数据并进行可视化分析

更多精彩,请点击上方蓝字关注我们!1. 准备工作tushare是一个第三方财经数据接口包,需要安装包并完成注册。安装tushare包pip install tushare 为防恶意调用接口数据,官方()需要新用户完成注册、提高积分(例如达到200)、取得访问权…

Shiro 登录认证源码详解

Apache Shiro 是一个强大且灵活的 Java 开源安全框架,拥有登录认证、授权管理、企业级会话管理和加密等功能,相比 Spring Security 来说要更加的简单。 本文主要介绍 Shiro 的登录认证(Authentication)功能,主要从 Sh…

中3d库后接负载_Nature子刊:近红外光交联水凝胶用于活体生物3D打印

由于打印精度高、速度快,光固化3D打印成为组织再生等医学研究的有利工具,然而由于现在光固化3D打印普遍采用波长较短的光源,对组织损害较大且穿透力不高,这大大限制生物体内3D打印的发展。最近,来自意大利帕多瓦大学的…

SpringBoot + Shiro 缓存记住密码

一般来讲,记住密码的基本处理,就是把用户的一些基本信息(密码)存入浏览器的Cookie,下次登录的时候优先验证Cookie,后端做处理;以此来实现记住密码的功能!使用shiro自带的RememberMe功能,使用起来…

怎么看调用的接口_Hadoop RPC调用实例分析

以ClientProtocol接口中的rename RPC调用进行一次实例分析。rename方法在ClientProtocol接口中定义,它的两个参数是String类型的,不能直接通过网络传输。我们看谁实现了ClientProtocol接口并重写rename方法。看到是ClientNamenodeProtocolTranslatorPB这…

java 的构造函数修饰符public private protected

java中使用new关键字创建对象的时候,构造方法上的修饰符起什么作用? 1,限定可以创建对象的位置 使用public 修饰,new对象时,可以在任何包下的任何类中。 使用protected修饰,只能在当前类,或者…

父子结构查询_Java面试准备(5)之数据结构与算法——红黑树

欢迎点赞评论关注~~~~~~~如上图,二叉查找树极端情况下可能会变成一个单链表,这种查询时间复杂度就变成O(n)了,红黑树在二叉查找树的基础上进行了自平衡。1.原理分析如上图,红黑树具有以下特征:1. 每个节点要么是黑色&a…

Redis学习笔记——SpringDataRedis的使用

与Spring集成 我需要哪些jar包&#xff1f; <dependency><groupId>org.springframework.data</groupId><artifactId>spring-data-redis</artifactId> </dependency> <dependency><groupId>redis.clients</groupId><a…