jps无法获取到tomcat(java)进程
一、问题描述:
Ubuntu 10.10版本,同个JDK 1.6版本,启动tomcat后,使用jps无法获取本机Java进程。
二、jps工作原理:
1. java进程启动时,若没有指定 -Djava.io.tmpdir参数,则会默认新建 /tmp/hsperfdata_${user_name} 文件
2. jps查询java进程时会去扫描 /tmp/hsperfdata_${user_name} 文件
三、jps不能正常工作,可能存在的原因:
1. 启动tomcat的java与jps不同版本
2. jps 因为权限问题无法读取 /tmp/hsperfdata_${user_name} 文件
3. java进程启动时指定 -Djava.io.tmpdir参数,即不采用默认值
四、问题定位:
1. ps查询java启动的参数
- ps -ef | grep java | grep "Djava.io.tmpdir"
2. 修改tomcat默认的catalina.sh文件,修改如下
- if [ -z "$CATALINA_TMPDIR" ] ; then
- # Define the java.io.tmpdir to use for Catalina
- CATALINA_TMPDIR=/tmp
- fi
3.重新启动tomcat,重新执行jps,问题解决
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~