栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

tomcat以服务方式启动后,jps、jstat等命令失效问题排查

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

tomcat以服务方式启动后,jps、jstat等命令失效问题排查

tomcat以服务方式启动后,jps、jstat等命令失效问题排查
  • 环境
  • 问题现象
  • 问题分析
    • jps工作原理
  • 问题解决
  • 注意事项

环境
组件版本
JDK1.8
Tomcat9.0.64
操作系统window 11
问题现象

将Tomcat注册成服务后,通过jps命令查找不到进程,但是在windows资源管理器中可以看到进程,同时使用jstat命令提示not fount,但是jstack命令正常,如下图:

  1. Tomcat启动

  2. 系统访问正常

  3. Windows资源管理器中可以看到进程信息

  4. 通过jsp命令找不到进程

  5. jstat -gcutil 9912命令提示not fount

  6. jstack 9912命令正常

问题分析
  1. 从上的一系列截图中可以确认,服务确实已经启动。
  2. jstack命令可以正常使用,但是jps命令不正常,说明这两个命令的原理不一样
  3. 了解一下jps命令的原理
jps工作原理

jps的工作原理其实也不复杂,jvm启动后,会在C:Users用户AppDataLocalTemphsperfdata_用户下成pid文件,jps读的就这这个目录下的文件。

现在这个目录是空的,所以jps查询后,也查不到信息。当我启动idea(idea是java服务)后,这个目录下会生成idea的pid文件。就像这样:

然后通过jps -v,就可以查到idea的进程了

问题解决

给【hsperfdata_用户名】文件夹受权即可

权限设置好后,再启动Tomcat服务,就可以在hsperfdata_下看到pid文件了

然后jps命令也正常了

jstat -gcutil 9296也正常了

注意事项
  1. 只要jps命令出现问题,需要第一时间排查目录C:Users用户AppDataLocalTemphsperfdata_用户
  2. 安装服务时,一定要指定用户名,同时,用户名一定得是当前登录用户的用户名,如:service install tomcat9 --user xxx
  3. 服务启动时,不要去服务管理里直接启动,在命令行里用start tomcat9启动
暑期编程PK赛 得CSDN机械键盘等精美礼品!
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1016320.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号