jar包批量启动、查看状态、关闭脚本

一、直接给代码

1. start.sh

#!/usr/bin/env bash
  
# 配置文件名称
# (该配置文件放置在jar包同级目录下并且必须存在已经配置文件名称具备统一性!!!请根据实际的配置文件名称进行修改)
CONFIG_FILE_NAME="application.properties"

# 启动一个目录下的所有jar包
function read_dir(){
for file in `ls $1`
do
  #如果当前文件是文件夹则递归处理
  if [ -d $1"/"$file ];
  then
    read_dir $1"/"$file
  else
    # 当前文件不是一个文件夹
    if [[ -f $1"/"$file ]];
    then
        # 如果当前文件是一个.jar结尾的文件则启动它
        if [[ ${file:0-4} == '.jar' ]];
        then
	  echo $1/$file 开始启动...
          cd ./$1
          #nohup java -jar $1"/"$file --spring.config.location=$1"/"$CONFIG_FILE_NAME > /dev/null &
 	  if [[ ! -d "./logs/" ]];
	  then  
      	    mkdir "./logs" > /dev/nul
	  fi
   	   nohup java -jar -Dlogging.config="./config/logback.xml" "./"$file > "./logs/catalina.log" &
 	    #nohup java -jar ./$file > ./logs/catalina.log &
            echo $1"/"$file  启动成功!
	    echo ""
            cd - > /dev/null
        fi
    fi
  fi
done
}
#读取第一个参数
read_dir $1

2. status.sh

#!/usr/bin/env bash
# 查看某个目录下所有jar程序的状态
function read_dir(){
for file in `ls $1`
do
  #如果当前文件是文件夹则递归处理
  if [ -d $1"/"$file ]
  then
    read_dir $1"/"$file
  else
    # 当前文件不是一个文件夹
    if [[ -f $1"/"$file ]]
    then
        if [[ ${file:0-4} == '.jar' ]];
        then
            # 获取pid
                pid=`ps -ef | grep $file | grep -v grep | awk '{print $2}'`
            # -z 表示如果$pid为空时则输出提示
                if [ -z $pid ];then
                        echo ""
                echo "Service $file is not running!"
                        echo ""
                else
                        echo ""
                echo "Service $1"/"$file is running. It's pids=${pid}"
                        echo ""
                fi
        fi
    fi
  fi
done
}
#读取第一个参数
read_dir $1


3.stop.sh

#!/usr/bin/env bash
# 停止一个目录下的所有jar程序
function read_dir(){
for file in `ls $1`
do
  #如果当前文件是文件夹则递归处理
  if [ -d $1"/"$file ]
  then
    read_dir $1"/"$file
  else
    # 当前文件不是一个文件夹
    if [[ -f $1"/"$file ]]
    then
        if [[ ${file:0-4} == '.jar' ]];
        then
            # 获取pid
            # 模糊匹配 $file 进程| 过滤自身命令进程 | 输出进程表中的进程号
                pid=`ps -ef | grep $file | grep -v grep | awk '{print $2}'`
            # -z 表示如果$pid为空时则输出提示
                if [ -z $pid ]; then
                echo "Service $file is not running! It's not necessary to stop it!"
                else
                # 杀死进程
                        kill -9 $pid
                        echo "Service stop successfully!pid:${pid} which has been killed forcibly!"
			echo ""
                fi
        fi
    fi
  fi
done
}
#读取第一个参数
read_dir $1


二、结束语

评论区可留言,可私信,可互相交流学习,共同进步,欢迎各位给出意见或评价,本人致力于做到优质文章,希望能有幸拜读各位的建议!

专注品质,热爱生活。
交流技术,寻求同志。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

嗝屁小孩纸

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

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

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

打赏作者

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

抵扣说明:

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

余额充值