美文网首页
linux 查找tomcat进程并杀死

linux 查找tomcat进程并杀死

作者: 风吟空城 | 来源:发表于2018-11-27 15:12 被阅读0次

    简言

    公司项目运营在linux系统上,为了方便发包,自己写了一个自动发包程序。但是,经常会出现tomcat进程没有杀死的情况。为了解决此问题,写了一个处理此类进程的脚本。写下本文的就是记录一下这个脚本,同时也希望能帮到有此需求的人。

    步骤分解

    1.公共变量

    #!/bin/sh
    
    JAVA_JPS="$JAVA_HOME/bin/jps -v"
    #公共变量
    declare node_name;
    

    2.检索符合条件的tomcat进程

    #获取tomcat节点PID
    function get_tomcat_node_pid {
        pids_search=`$JAVA_JPS | grep $node_name | awk '{print $1}'`;    
        echo $pids_search;
    }
    
    • shell中将某个方法、命令的执行结果赋值给某个变量时,需要使用反引号。反引号``不是单引号,而是TAB键上方那个键。
    • $node_name为tomcat节点名称。

    3.检查tomcat进程

    #检查tomcat节点是否被杀死
    function check_tomcat_node_killed {
        pids=`get_tomcat_node_pid`;
        pids_array=($pids);
        pids_len=${#pids_array[@]};
        
        if [ $pids_len -eq 0 ]
        then
            return 0;
        fi
        
        return 1;
    }
    

    根据pids集合的长度判断tomcat进程是否存在。
    return只返回number类型的数值,0表示正确,其他为不正确。如果想获取方法的返回值,使用$?接收即可。

    4.杀死tomcat进程

    #杀死tomcat节点进程
    function kill_tomcat_node {
        echo "$pids";   
        for node_pid in $pids
        do
            echo "kill tomcat node pid of $node_pid";
            kill -9 $node_pid;
        done 
    }
    

    利用for循环逐个杀死符合检索条件的tomcat进程。

    5.完整脚本

    #!/bin/sh
    
    JAVA_JPS="$JAVA_HOME/bin/jps -v"
    #公共变量
    declare node_name;
    
    
    #获取tomcat节点PID
    function get_tomcat_node_pid {
        pids_search=`$JAVA_JPS | grep $node_name | awk '{print $1}'`;    
        echo $pids_search;
    }
    
    #检查tomcat节点是否被杀死
    function check_tomcat_node_killed {
        pids=`get_tomcat_node_pid`;
        pids_array=($pids);
        pids_len=${#pids_array[@]};
        
        if [ $pids_len -eq 0 ]
        then
            return 0;
        fi
        
        return 1;
    }
    
    #杀死tomcat节点进程
    function kill_tomcat_node {
        echo "$pids";   
        for node_pid in $pids
        do
            echo "kill tomcat node pid of $node_pid";
            kill -9 $node_pid;
        done 
    }
    
    #杀死进程
    tomcat_kill() {    
        node_name=$1;
        check_tomcat_node_killed;
        check_tomcat_node_result=$?;
        if [ $check_tomcat_node_result -eq 1 ]
        then  
            kill_tomcat_node;
        else
            echo "tomcat node is killed already!";
        fi
        
        exit $?             
    }
    
    #执行kill方法
    tomcat_kill $1
    
    

    结尾

    这个脚本只是一个简单的执行脚本,为了更友好,可以加上各种友好提示方法,有需要的朋友可以自己去增加。

    相关文章

      网友评论

          本文标题:linux 查找tomcat进程并杀死

          本文链接:https://www.haomeiwen.com/subject/nqtsqqtx.html