shell脚本带参数启动不同版本项目

背景

日常开发工作中,部署项目时,常常需要写一个脚本来实现项目重启(比如:jar/war)。随着时间的推移,一个项目会存在多个版本。因此需要传入一个版本参数来启动对应版本的项目。

脚本实现

if [ -n "$1" ];  then
pid=`ps -ef | grep -w test-0.0.1 | grep -v grep | awk '{print $2}'`
echo "test $pid"
if [ -n "$pid" ]
then
   echo "kill -9 pid:" $pid
   kill -9 $pid
fi
nohup java -Xmx1024m -Xms1024m  -Xss256k -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:ParallelGCThreads=8 -XX:MaxTenuringThreshold=10 -XX:GCTimeRatio=19 -XX:+DisableExplicitGC -jar $1/test-0.0.1.jar --spring.profiles.active=online >/dev/null 2>&1 &
echo "test start success" 

fi

脚本解释

运行脚本时需要输入参数 没有参数则不执行

if [ -n "$1" ];then

启动项目之前,若正在执行,根据项目名称(test-0.0.1此名称为jar名,每个版本打包时名字要相同)先查询出对应的进程id,若存在则干掉进程。

pid=`ps -ef | grep -w test-0.0.1 | grep -v grep | awk '{print $2}'`
echo "test $pid"
if [ -n "$pid" ]
then
   echo "kill -9 pid:" $pid
   kill -9 $pid
fi

启动项目,此处用到了传入的版本参数($1/test-0.0.1.jar)去获取对应的jar,启动并指定相关JVM参数。

nohup java -Xmx1024m -Xms1024m  -Xss256k -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:ParallelGCThreads=8 -XX:MaxTenuringThreshold=10 -XX:GCTimeRatio=19 -XX:+DisableExplicitGC -jar $1/test-0.0.1.jar --spring.profiles.active=online >/dev/null 2>&1 &

项目目录及运行脚本

一个日期代表一个版本,脚本与其同一级。版本文件夹中存放项目。
在这里插入图片描述
执行脚本时,若需要在脚本中指定环境变量需要用source命令。执行之前赋权限

chmod +x run-server.sh
source run-server.sh 20200707
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值