Shell 获取Tomcat进程号

一台服务器上部署了多个tomcat实例,要获取名为 my_tomcat 的项目进程id,可以用如下命令

ps -ef | grep my_tomcat | grep -v grep | awk '{print $2}'

命令解析:
1、ps -ef | grep my_tomcat 获得了进程信息中包含 my_tomcat 的进程信息
2、第一步查出来的结果中会包含grep本身,所以我们需要用 | grep -v grep 来排除grep本身
3、通过 awk '{print $2}'来打印出要找的进程
4、如果我们要删除该进程,可以用如下命令

ps -ef | grep my_tomcat | grep -v grep | awk '{print $2}'| sed -e "s/^/kill -9 /g" | sh -

5、如果我们需要通过命令行删除指定的项目,可以把脚本修改如下

#!/bin/bash
echo "kill tomcat进程";
echo "文件名:$0";

if  [ ! -n "$1" ]
then
    echo "请输入要删除的tomcat项目关键字"
else
    echo "输入的关键字为:$1";
    tomcat_id=$(ps -ef |grep tomcat |grep -w $1|grep -v 'grep' |awk {'print $2'})
    echo "查找到的Tomcat项目进程id:$tomcat_id,开始删除进程"
    kill -9 $tomcat_id
    sleep 5
    tomcat_id=$(ps -ef |grep tomcat |grep -w $1|grep -v 'grep' |awk {'print $2'})
    echo "重启后的新进程id:$tomcat_id"
fi

测试一下:

sh restart.sh tomcat1
kill tomcat进程
文件名:restart.sh
输入的关键字为:tomcat1
查找到的Tomcat项目进程id:4161413,开始删除进程
重启后的新进程id:4161827
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 12,263评论 2 33
  • 为何叫做 shell ? shell prompt(PS1) 与 Carriage Return(CR) 的关系?...
    Zero___阅读 3,213评论 3 49
  • 转载 原文的排版和内容都更加友好,并且详细,我只是在这里贴出了一部分留作自己以后参考和学习,如希望更详细了解AWK...
    XKirk阅读 3,309评论 2 25
  • 1. 总则 人之初,性本善 到老年,求平安 世间事,难万全 别失落,顺自然 窗外事,淡如烟 无欲求,潇洒点 莫比攀...
    狂奔君阅读 852评论 0 0
  • 阅读及笔记时间:2017年2月,16日,约3小时; 阅读书本:《迷人的材料》;作者:【英】马克·米奥多尼克(译:赖...
    时空山庄阅读 1,618评论 0 2