【linux】Java获取linux里某进程的pid

25 篇文章 0 订阅

需要用到Jsch

public static String getProcessPid(String processFilter,boolean isJavaProcess, HostEntity hostEntity){
        Session connect = null;
        String res = null;
        try {
            String cmd;
            if(isJavaProcess){
                cmd = "/home/bigdata/bin/get_pid.py java "+processFilter;
            }else {
                cmd = "/home/bigdata/bin/get_pid.py "+processFilter;
            }
            connect = RemoteLinuxUtil.connect(hostEntity.getIp(), hostEntity.getUsername(), hostEntity.getPassword(), hostEntity.getSshPort());
            List<String> strings = RemoteLinuxUtil.execCmd(connect, cmd, "utf-8");
            if(strings.size() > 0){
                res = strings.get(0);
            }
        } catch (JSchException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if(connect!=null){
                RemoteLinuxUtil.close(connect);
            }
        }
        return res;
    }

简单的脚本

#!/usr/bin/python2
# _*_coding:UTF-8_*_


import os
import sys


def get_pid():
    res = os.popen("ps -ef|grep {}|{}".format(process_name, "awk '{print $2}'")).readlines()
    result(res)


def get_java_pid():
    res = os.popen("jps|grep {}|{}".format(process_name, "awk '{print $1}'")).readlines()
    result(res)


def result(res):
    if res.__len__() > 0:
        print res[0].replace("\n", "")
    else:
        print 'unknow'


if __name__ == '__main__':
    if sys.argv.__len__() >= 3:
        process_name = sys.argv[2]
        get_java_pid()
    else:
        process_name = sys.argv[1]
        get_pid()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值