编写Shell脚本监控jar运行状态

1,创建一个shell文件,编辑内容如下

#!/bin/bash
port=10009 
jar_name=/home/data/myqxin/hpmis-0.0.1-SNAPSHOT.jar

#运行脚本提示信息
tips(){
 echo "------------------"
 echo ""
 echo "服务器端口:${port}"
 echo "jar包路径:${jar_name}"
 echo ""
 echo "可执行命令参数"
 echo "-status -查看当前服务运行状态"
 echo "-start -启动服务"
 echo "-stop -停止服务"
 echo "-restart -重启服务"
 echo ""
 echo "------------------"
}

#查询状态
status(){
  #查询端口的PID {print $7{取出打印的第7个值
  pid=$(netstat -nlp |grep :$port | awk '{print $7}' | awk -F"/" '{ print $1 }')
  #判断端口是否被占用
  if [ -z "${pid}" ];then
	echo "没有项目在运行"
  else
  	echo "项目正在运行"	  
  fi
}

#启动服务
start(){
  pid=$(netstat -nlp |grep :$port | awk '{print $7}' | awk -F"/" '{ print $1 }')
  if [ -z "${pid}" ];then
	echo "正在启动......"
	/home/data/jdk/bin/java -jar $jar_name --spring.profiles.active=test > log.log &
  else
	echo "项目运行中或端口已被占用"
  fi
}

#停止服务
stop(){
  pid=$(netstat -nlp |grep :$port | awk '{print $7}' | awk -F"/" '{ print $1 }')
  if [ -z "${pid}" ];then
	echo "没有项目正在运行,请先启动"
  else
	kill -9 $pid
	echo "已杀死端口为${port} 的应用"
  fi
}

#重启服务
restart(){
  pid=$(netstat -nlp |grep :$port | awk '{print &7}' | awk -F"/" '{ print $1 }')
  echo "正在杀死端口 ${port} 的pid ${pid} 中..."
  if [ -z "${pid}" ];then
	echo "服务未启动"
  else
 	kill -9 $pid
  fi
  sleep 5
  start
  echo "服务重启成功"
}

# 参数选项
case "$1" in
 "-status")
  status
  ;;
 "-start")
  start
  ;;
 "-stop")
  stop
  ;;
 "-restart")
  restart
  ;;
 *)
  tips
  ;;
esac

2,赋予脚本权限

chmod 777 xxx.sh

3,执行演示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

子非我鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值