进程查找后强制结束与进程状态监控脚本

进程查找后强制结束及状态监控

一、进程查找后强制结束

注意是避免每次都手工执行先查询获取进程ID,再手工执行kill命令,用于开发中经常替换可执行文件
killserver.sh

#!/bin/bash
ps -ef|grep 'LinuxTcpServer'|grep -v 'grep' | awk '{print $2}' |xargs kill -s 9

以后台进程LinuxTcpServer为例,后台进行运行情况如下:
在这里插入图片描述
1、查看进程’LinuxTcpServer’:ps -ef|grep ‘LinuxTcpServer’
在这里插入图片描述
注意-f参数,如果不加-f参数则显示(LinuxTcpServer.out显示会截断)
在这里插入图片描述

2、过滤掉第二个grep --color=auto LinuxTcpServer:ps -ef|grep ‘LinuxTcpServer’|grep -v ‘grep’
在这里插入图片描述
3、获取进程ID(通过awk逗号分隔,第二列就是进程ID):ps -ef|grep ‘LinuxTcpServer’|grep -v ‘grep’ | awk ‘{print $2}’
在这里插入图片描述
4、根据进程ID结束进程(xargs 将前面的命令结果进程ID作为kill命令的参数):ps -ef|grep ‘LinuxTcpServer’|grep -v ‘grep’ | awk ‘{print $2}’ |xargs kill -s 9
在这里插入图片描述

二、进程状态监控

判断进程是否存在(用于定时任务守护进程,进程不存在则重启):ps -ef|grep ‘LinuxTcpServer’|grep -v ‘grep’|wc -l
在这里插入图片描述
示例如下(wc -l统计结果行数,为1表示存在进程,否则表示进程不存在):
check-server-status.sh

#!/bin/bash
server_status=`ps -ef|grep 'LinuxTcpServer'|grep -v 'grep'|wc -l`
if [ ${server_status} -eq 1 ]; then  
   echo `date +"%Y-%m-%d %H:%M:%S server is running......"`
else
   echo `date +"%Y-%m-%d %H:%M:%S server is stopped!"`
fi

当进程未被kill掉前执行./check-server-status.sh效果如下
在这里插入图片描述
当进程被kill掉后执行./check-server-status.sh效果如下
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值