简言

公司项目运营在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 进程杀掉_linux 查找tomcat进程并杀死相关推荐

  1. linux tomcat 进程杀掉_Linux下Tomcat的启动、关闭、杀死进程

    打开终端 cd /java/tomcat #执行 bin/startup.sh #启动tomcat bin/shutdown.sh #停止tomcat tail -f logs/catalina.ou ...

  2. linux tomcat 进程杀掉_Linux下启动停止查看杀死Tomcat进程

    启动 一般是执行tomcat/bin/startup.sh,sh tomcat/bin/startup.sh 停止 一般是执行 sh tomcat/bin/shutdown.sh脚本命令 查看 执行p ...

  3. linux tomcat 进程杀掉_Linux下tomcat的配置踩坑

    前言 在配置微信公众号开发的过程,可以参照我的上一篇文章(后来使用Java开发的我表示很鸡肋,虽然配置好了,但是不知道接下来该怎么继续).然后就想起了Windows下Java学习过程中使用过的tomc ...

  4. linux java进程消失_Linux服务器Java进程消失问题解决

    Linux服务器Java进程消失问题解决 发布时间:2020-08-20 15:17:37 来源:脚本之家 阅读:65 作者:myseries 这篇文章主要介绍了Linux服务器Java进程消失问题解 ...

  5. 表正在被别的用户或进程使用_linux内核对进程的管理分为两个方面

    嵌入式开发直播课 - linux内核通知链 - 创客学院直播室​www.makeru.com.cn 众所周知,现在的分时操作系统能够在一个CPU上运行多个程序,让这些程序表面上看起来是在同时运行的.l ...

  6. 僵尸进程是什么,如果产生一个僵尸进程,如何查找僵尸进程

    僵尸进程是当子进程比父进程先结束,而父进程又没有回收子进程,释放子进程占用的资源,此时子进程将成为一个僵尸进程.如果父进程先退出 ,子进程被init接管,子进程退出后init会回收其占用的相关资源. ...

  7. Zombie僵尸进程发现,查找,追踪,杀死,避免

    2015/9/6鸟哥私房菜第17章 程序管理与SELinux初探 中的僵尸Z进程 发现:使用Top -d 2时候发现一个僵尸Z进程.q退出. 查找: 而后通过百度搜索到篇文章http://blog.c ...

  8. Linux上无法杀掉redis、redis-sentinel进程

    在Linux上,如果开了redis的守护进程,kill -9和redis-cli shutdown 命令是无法杀掉 redis 进程的 , 杀掉就会重新启动一个新的进程 都无语了 杀掉一个又来一个进程 ...

  9. linux java查看进程命令_linux一些查看进程情况的命令

    1.命令lsof,以查找占用端口80为例,用法如下: [root@localhost nginx]# lsof -i:80 [root@localhost nginx]# 以上为没有进程占用80端口, ...

最新文章

  1. python切片语法-Python字符串切片操作知识详解
  2. typedef 用法总结
  3. 如何实现轮播图的内容的多少随div的大小动态变化_小程序学习日志8:swiper滑动轮播组件(轮播图)(上)...
  4. YMP框架学习笔记(二)------基于YMP框架搭建WEB应用程序
  5. oracle 查询dbid,查看oracle 数据库的DBID
  6. DataLoader, when num_worker 0, there is bug
  7. 大数据与Hadoop有什么关系?大数据Hadoop入门简介
  8. 2021-02-22 【转载】什么是GCJ-02火星坐标系;为什么天地图没有偏移
  9. 【ArcGIS|空间分析】微博签到数据分析(全国大学生GIS技能大赛试题)
  10. windows 覆盖图标实现
  11. 百度网站打不开了,只有百度首页跟搜索页打不开其它能正常打开怎么解决?
  12. R语言-聚类分析(系统聚类)
  13. 2、PM模块中的主数据
  14. 计算机 澳洲 博士后 要考雅思么,博士后移民澳大利亚(澳洲做科研博士后)
  15. 【测试用例练习】十、微信朋友圈点赞 和发红包 测试用例
  16. 金山打字专业文章计算机,计算机打字训练管理(范文).doc
  17. python中notebook左侧in中_Python Pmw.NoteBook方法代码示例
  18. numpy数组的拼接(扩维拼接和非扩维拼接)
  19. 阿里云ecs配置ssh
  20. Tableau、PowerBI、OBIEE、QuickBI的比较

热门文章

  1. maya动画设计课程
  2. 用计算机对角进行有关运算,新华师大版七年级数学上册用计算器进行计算学案.docx...
  3. Android学习|第一次创建启动Adnroid项目(包含创建虚拟手机)
  4. Sqoop使用与原理
  5. 索尼发布新一代降噪豆耳机WF-1000XM4 处理器是亮点
  6. python 归一化处理_详解python实现数据归一化处理的方式:(0,1)标准化
  7. 使用MQTT.fx接入腾讯MQTT平台
  8. script元素都有哪些属性?分别是哪些作用?
  9. 中拓互联解密:一个购物码,可以玩出什么花样?
  10. 基于STM32的0.96寸OLED显示屏显示固定数据、滑动数据、温湿度数据