linux启动和关闭jar包脚本,linux--shell脚本批量启动和停止jar包

脚本代码all.sh

#! /bin/sh

# 端口号

PORTS=(8084 8083 8085 8086)

# 系统模块

MODULES=(mcht system user act)

# 系统模块名称

MODULE_NAMES=(商户模块 系统模块 用户模块 活动模块)

# jar包数组

JARS=(mcht-1.0.1-SNAPSHOT.jar system-1.0.1-SNAPSHOT.jar user-1.0.1-SNAPSHOT.jar act-1.0.1-SNAPSHOT.jar)

# jar包路径

JAR_PATH='/usr/local/beta'

# 日志路径

LOG_PATH='/usr/local/beta'

start() {

local MODULE=

local MODULE_NAME=

local JAR_NAME=

local command="$1"

local commandOk=0

local count=0

local okCount=0

local port=0

for((i=0;i

do

MODULE=${MODULES[$i]}

MODULE_NAME=${MODULE_NAMES[$i]}

JAR_NAME=${JARS[$i]}

PORT=${PORTS[$i]}

if [ "$command" == "all" ] || [ "$command" == "$MODULE" ];then

commandOk=1

count=0

PID=`ps -ef |grep $(echo $JAR_NAME | awk -F/ '{print $NF}') | grep -v grep | awk '{print $2}'`

if [ -n "$PID" ];then

echo "$MODULE---$MODULE_NAME:已经运行,PID=$PID"

else

exec nohup java -jar $JAR_PATH/$JAR_NAME >> $LOG_PATH/nohup.out &

PID=`netstat -apn | grep $PORT | awk '{print $7}' | cut -d/ -f 1`

while [ -z "$PID" ]

do

if (($count == 30));then

echo "$MODULE---$MODULE_NAME:$(expr $count \* 10)秒内未启动,请检查!"

break

fi

count=$(($count+1))

echo "$MODULE_NAME启动中.................."

sleep 10s

PID=`netstat -apn | grep $PORT | awk '{print $7}' | cut -d/ -f 1`

done

okCount=$(($okCount+1))

echo "$MODULE---$MODULE_NAME:已经启动成功,PID=$PID"

fi

fi

done

if(($commandOk == 0));then

echo "第二个参数请输入:mcht|system|user|act"

else

echo "............本次共启动:$okCount个服务..........."

fi

}

stop() {

local MODULE=

local MODULE_NAME=

local JAR_NAME=

local command="$1"

local commandOk=0

local okCount=0

for((i=0;i

do

MODULE=${MODULES[$i]}

MODULE_NAME=${MODULE_NAMES[$i]}

JAR_NAME=${JARS[$i]}

if [ "$command" = "all" ] || [ "$command" = "$MODULE" ];then

commandOk=1

PID=`ps -ef |grep $(echo $JAR_NAME | awk -F/ '{print $NF}') | grep -v grep | awk '{print $2}'`

if [ -n "$PID" ];then

echo "$MODULE---$MODULE_NAME:准备结束,PID=$PID"

kill -9 $PID

PID=`ps -ef |grep $(echo $JAR_NAME | awk -F/ '{print $NF}') | grep -v grep | awk '{print $2}'`

while [ -n "$PID" ]

do

sleep 3s

PID=`ps -ef |grep $(echo $JAR_NAME | awk -F/ '{print $NF}') | grep -v grep | awk '{print $2}'`

done

echo "$MODULE---$MODULE_NAME:成功结束"

okCount=$(($okCount+1))

else

echo "$MODULE---$MODULE_NAME:未运行"

fi

fi

done

if (($commandOk == 0));then

echo "第二个参数请输入:mcht|system|user|act"

else

echo "............本次共停止:$okCount个服务............"

fi

}

case "$1" in

start)

start "$2"

;;

stop)

stop "$2"

;;

restart)

stop "$2"

sleep 3s

start "$2"

;;

*)

echo "第一个参数请输入:start|stop|restart"

exit 1

;;

esac

1,启动所有jar包:sh all.sh start all 或者./sh start all

2,停止所有jar包:sh all.sh stop all 或者./sh stop all

3,重启所有jar包:sh all.sh restart all 或者./sh restart all

4,重启或者停止单个jar包,只需要将all替换为相应的模块代码就行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值