Shell脚本批量启动、停止java jar包

创建shell脚本:run.sh

tip:脚本和jar在同级目录

#!/bin/bash
#定义jar数组,需要按需修改
jarArr=(A.jar B.jar C.jar )
len=${#jarArr[*]}

case "$1" in 

start)
    for ((i=0;i<len;i++))
        do
                jarName=${jarArr[i]};
        nohup java -jar  $jarName >/dev/null 2>&1 &
        done
    ;;
stop)
    for ((i=0;i<len;i++))
    do
        jarName=${jarArr[i]};
        tmpPid=`ps -ef |grep $jarName |grep -v "grep" | awk '{print $2}'`
        if [ $tmpPid ]; then
            kill -9 $tmpPid
        else
            echo -e "$jarName包进程不存在,无须停止\\n"
        fi
    done
    ;;
restart)
    $0 stop
        sleep 10
        $0 start
        echo "【 所有jar包重启完成】"
    ;;
status)
    for ((i=0;i<len;i++))
    do
        jarName=${jarArr[i]};
        tmpPid=`ps -ef | grep $jarName | grep -v "grep" | awk '{print $2}'`
        if [ ! $tmpPid ]; then
            echo -e "【$jarName jar包 运行异常】\\n"
        else
            record=`ps -ef|grep -v grep|grep $jarName`
            port=$(ss -ntlp|grep $(echo $record|awk '{print $2}') |sed -r "s#.*:::([0-9]{3,5}).*#\1#g");
            echo -e "【$jarName jar包 运行正常,pid为 $tmpPid,port为 $port】\\n"
        fi
    done
    ;;  
esac
exit 0

授权

chmod +x run.sh

执行脚本

+ 启动: ./run.sh start
+ 停止: ./run.sh stop
+ 查看状态: ./run.sh status
+ 重启: ./run.sh restart
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容