场景:
java 应用不同于其它程序,在ps查看时程序名都是
/usr/.../java -classpath ..... class
很长的话,查看起来非常不方便,但是一般来说每个应用都是放在单独并具有有意义的应用名的目录下,如果可以把特定应用的java进程的工作目录显示出来,那么就很容易标志某个应用了,进而可以对这个应用的进程进行kill等操作了。
linux提供了 proc 虚拟文件系统,其中的 /proc/PID/cwd 正是进程的工作目录,那么通过
1。读取 ps
2。对 java 进程过滤
3。显示java进程工作目录以及pid
即可定位特定应用的java进程。
shell:
#!/bin/sh
#过滤java进程
listpids()
{
#ps -ef|grep java
COLUMNS=1024 ps h -C java -f
}
#显示全部java工作目录
showpids()
{
while read u p pp t1 t2 tty cpu cmd;
do
ls -l /proc/$p/cwd
echo $p $cwd $cmd
echo
done
}
#查询应用名或java类的相关进程,显示工作目录
showpidof()
{
while read u p pp t1 t2 tty cpu cmd;
do
if ls -l /proc/$p/cwd | grep -q $1; then
ls -l /proc/$p/cwd
echo $p $cmd
echo
elif echo $cmd | grep -q $1; then
ls -l /proc/$p/cwd
echo $p $cmd
echo
fi
done
}
if [ "$1" ]; then
listpids | showpidof $1
else
listpids | showpids
fi
分享到:
相关推荐
在开发Java应用程序时,通常使用Java编译器将Java源代码(.java)文件编译为字节代码(.class)文件,然后将字节代码加载到目标机,通过目标机上的Java虚拟机(JVM)解释执行。 二、开发环境安装与配置 在Linux下...
例如,`jps` 可以显示运行的Java应用程序的进程ID。 3. **`top` 命令**: - `top` 提供了一个实时的视图,显示了系统资源的使用情况,包括CPU和内存。通过`top`,你可以看到哪个Java进程占用了最多的CPU。 4. **`...
它专为开发者设计,帮助他们在Linux环境中深入理解并优化Java应用程序的内存使用情况。本篇文章将详细探讨jProfiler7在Java内存分析上的核心功能、使用方法以及在Linux环境中的配置和应用。 1. **内存分析概述** -...
总之,在Linux上搭建Java Web服务器涉及多个环节,需要对Linux环境、网络服务、数据库管理以及Java应用服务器有深入的理解和实践。通过以上步骤,可以构建一个稳定、安全且高性能的Java Web服务环境。
`JAVA_HOME`环境变量用于指向JDK的安装目录,很多Java应用程序都会依赖这个环境变量来定位JDK的安装位置,如Eclipse、NetBeans、Tomcat等。 在`/etc/profile`文件中已经设置了`JAVA_HOME`变量,无需重复设置。 ###...
在Linux系统中,管理和监控Java应用程序是至关重要的任务,尤其是对于那些处理大量并发请求或运行在高负载环境下的服务。本文将深入探讨标题所提及的三个实用脚本:“show-busy-java-threads”、“show-duplicate-...
在Linux服务器环境中,Java应用程序可能由于各种原因导致CPU使用率过高,这可能会影响系统的整体性能。要找到占用CPU高的Java代码,我们可以采取一系列步骤来诊断和优化问题。以下是一种详细的方法: 1. **查看系统...
在Linux环境中运行Java应用程序时,经常需要通过shell脚本来启动Java程序。这种方式不仅便于自动化部署和管理,还可以根据需求灵活调整运行参数。本文将详细介绍如何在Linux环境下编写并运行用于执行Java程序的shell...
在Linux环境下部署Java Web应用程序,通常涉及几个关键步骤,包括安装Java开发工具包(JDK)、设置环境变量、安装Web服务器如Tomcat、部署数据库如PostgreSQL,以及可能需要的办公软件OpenOffice或其替代品...
Java应用程序在Linux平台上的性能优化是一个复杂而重要的主题,尤其是在高并发和大规模数据处理的场景下。Java线程堆分析是定位和解决性能问题的有效工具,它提供了关于应用程序线程状态和执行路径的详细信息。 ...
编写自定义的Shell脚本(Linux)或批处理脚本(Windows),在脚本中调用Java应用的启动命令,同时添加服务控制逻辑,实现应用的后台运行和管理。 ### 三、注意事项 1. **资源监控与管理**:后台服务可能会消耗大量...
在Linux下开发Java应用时,了解如何配置环境变量(如`JAVA_HOME`, `PATH`),设置IDE(如Eclipse, IntelliJ IDEA)以适应Linux环境,以及使用版本控制工具(如Git)进行协作开发,都是必不可少的知识点。同时,掌握...
在Linux环境下部署Java应用时,如果遇到与安全策略相关的错误,可能是因为当前的Java安全策略不允许应用执行某些特定操作,比如使用特定的加密算法或者访问网络资源。此时,替换这两个policy文件通常是调整Java安全...
4. **开发和调试工具**:JDK 8包含了诸如`jconsole`、`jvisualvm`等用于监控和分析JVM性能的工具,还有`javadoc`用于生成API文档,`javap`用于查看字节码,`jdb`是Java的调试工具,帮助开发者定位和修复问题。...
在使用Spring Boot开发Java应用程序的过程中,可能会遇到一个特定的错误提示:“no libsigar-amd64-linux.so in java.library.path”。这个错误是由于系统缺少一个名为libsigar的库,特别是其AMD64架构的Linux版本,...
然而,当在Linux CentOS环境下通过Java调用OpenOffice4时,可能会遇到各种错误,比如路径配置不正确、权限问题、进程通信问题或者OpenOffice服务未启动等。 首先,我们需要确保OpenOffice4已经正确安装并且运行在...
在Linux操作系统环境下,RS485通信的实现是通过编程来控制硬件接口,以便设备之间能够进行双向、长距离的数据传输。下面将详细讲解基于Linux的RS485通信原理、实现步骤以及相关知识点。 1. **RS485通信标准** ...
通过上述步骤,可以有效地定位并解决Java应用在Linux服务器上引发的性能问题。值得注意的是,性能问题往往具有复杂性,可能涉及多个方面的原因,因此在实际操作中需要灵活运用多种工具和技术手段,综合分析才能达到...
Jconsole监控Java应用 Jconsole是JDK自带的监控工具,可以对Java应用程序进行监控。...通过Jconsole工具,可以实时监控Java应用程序的性能和内存使用情况,帮助开发者和运维人员快速定位和解决问题。
《Java程序员眼中的Linux》是一本专为Java开发者设计的指南,旨在帮助他们更好地理解和利用Linux操作系统来优化Java应用程序的开发、部署和维护。Linux以其开源、稳定和高性能的特性,已经成为开发者的首选平台,...