linux下定位java应用

场景:

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
 

 

 

 

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值