启动文件夹下 的所有 jar 项目

2021年07月19日 130点热度 0人点赞 0条评论

在启动微服务项目的时候,由于 jar 文件过多,所以需要一套快速启动的命令进行启动。

以下是命令:

放到执行文件夹内

start.sh

#!/usr/bin/env bash

# 启动一个目录下的所有jar包
function read_dir(){
for file in `ls`
do
    # 当前文件不是一个文件夹
    if [[ -f file ]]
    then
        # 如果当前文件是一个.jar结尾的文件则启动它
        if [[{file:0-4} == '.jar' ]];
        then
           echo file 开始启动...
           nohup java -jarfile >./logs/$file.log 2>&1 &
           echo 启动完成!
        fi
    fi
done
}
#读取第一个参数
read_dir

shutdown.sh

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

status.sh

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

迭代文件夹并带命令版本

使用方式
sh status.sh /Users/jarList/

status.sh

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

浮生一程

读书-行路-悦人-识物