linux shell 脚本批量后台启动jar包

微服务本地部署时多个jar后台启动,新建sh脚本放入同级目录即可

-Dloader.path=./lib   ./lib为外置jar包目录,目的是方便更新时快速上传新代码,若未配置可自行删除,或自行配置自己的目录

#!/bin/bash
# sh start.sh stop	关闭正在运行
# sh start.sh		直接启动
# sh start.sh sit	指定配置文件(sit)启动
#后台运行jar包 这里替换为你的jar包列表
jar_arr=("karakoram-usercenter-1.0.0.jar" "karakoram-wuyi-1.0.0.jar" "karakoram-inventory-1.0.0.jar" "karakoram-task-1.0.0.jar")

start(){
	stop
	
	yaml_name="prd"
	if [ ${1} ]
	then
		yaml_name=${1}
	fi
	echo ${yaml_name}
	
	for jar_name in ${jar_arr[@]};
	do
	
		#启动jar包
		if [ ${yaml_name} == "sit" ]
		then
			#测试环境
			nohup java -Dloader.path=./lib  -jar -Dspring.profiles.active=sit ${jar_name} >./out/${jar_name}.out 2>&1 &
		elif [ ${yaml_name} == "dev" ]
		then
			#开发环境
			nohup java -Dloader.path=./lib  -jar -Dspring.profiles.active=dev ${jar_name} >./out/${jar_name}.out 2>&1 &
		else
			#正式环境
			nohup java -Dloader.path=./lib  -jar ${jar_name} >./out/${jar_name}.out 2>&1 &
		fi
		echo ${yaml_name} ${jar_name} start
	done
	echo "启动完成"
}

stop(){
	for jar_name in ${jar_arr[@]};
		do
		#杀掉正在运行的进程
			tpid=`ps -ef|grep $jar_name|grep -v grep|grep -v kill|awk '{print $2}'`
			if [ ${tpid} ]
			then
				echo ${jar_name} ${tpid} kill
				kill -9  ${tpid}
			fi
		done
	echo "kill process success"
}


if [ !${1} -a ${1} == "start" ]
then
	start ${2}
elif [ ${1} == "stop" ]
then
	stop
else
	start ${1}
fi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值