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

在启动微服务项目的时候,由于 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 -jar $file >./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 '{print $2}'`
            # -z 表示如果$pid为空时则输出提示
            if [ -z $pid ]; then
                echo ""
                echo "Service $file is not running! It's not necessary to stop it!"
                echo ""
            else
            # 杀死进程
                kill -9 $pid
                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 '{print $2}'`
            # -z 表示如果$pid为空时则输出提示
            if [ -z $pid ];then
                echo ""
                echo "Service $file is not running!"
                echo ""
            else
                echo ""
                echo "Service $file 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 [ -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 $1"/"$file | grep -v grep | awk '{print $2}'`
# -z 表示如果$pid为空时则输出提示
     if [ -z $pid ];then
         echo ""
echo "Service $1"/"$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

相关文章

转载请注明: 转载自 浮生一程
本文链接地址 启动文件夹下 的所有 jar 项目
上一篇
下一篇