shell脚本指定环境启动jar包

  1. 路径说明:/opt路径下配置脚本api_run.sh,并在该路径下创建文件夹envment,上传jar包至envment下。
-/opt
---| api_run.sh
---| envment
-------|java.jar
  1. 启动命令:sh /opt/api_run.sh restart 8081 envment java-1.0.0-SNAPSHOT.jar
    参数说明:sh /opt/api_run.sh --启动脚本
    参数1:restart --执行命令
    参数2:8081 --启动端口
    参数3:envment -----环境,对应文件夹以及springboot中的yml文件
    参数4:java-1.0.0-SNAPSHOT.jar --jar包名称

  2. api_run.sh脚本配置

#!/bin/bash

Port=$2
Env=$3
AppName=$4
AppName_Port="$AppName $Port"

#JVM参数
#JVM_OPTS="-server -Xms2048M -Xmx2048M -XX:PermSize=256M -XX:MaxPermSize=512M -XX:+HeapDumpOnOutOfMemoryError -XX:+PrintGCDateStamps  -XX:+PrintGCDetails -XX:NewRatio=1 -XX:SurvivorRatio=2 -XX:+UseParallelGC -XX:+UseParallelOldGC -Djava.security.egd=file:/dev/./urandom"
JVM_OPTS="-server -Xms512M -Xmx1024M -XX:+UseG1GC -Djava.security.egd=file:/dev/./urandom"
APP_HOME=`pwd`
LOG_PATH=./logs/ly-omo-api/$AppName.log

if [ "$AppName" = "ly-omo-xxljob-admin.jar" ];
then
    JVM_OPTS="-server -Xms256M -Xmx512M -XX:+UseG1GC -Djava.security.egd=file:/dev/./urandom"
fi

if [ "$1" = "" ];
then
    echo -e "\033[0;31m 未输入操作名 \033[0m  \033[0;34m {start|stop|restart|status} \033[0m"
    exit 1
fi

if [ "$AppName" = "" ];
then
    echo -e "\033[0;31m 未输入应用名 \033[0m"
    exit 1
fi

function start()
{
	PID=`netstat -anp|grep :::$Port|awk '{printf $7}'|cut -d/ -f1`
	PID=`echo $PID | tr -cd "[0-9]" `
	if [ x"$PID" != x"" ]; then
	    echo "$AppName_Port is running..."
	else
		nohup java $JVM_OPTS -jar $AppName --server.port=$Port --spring.profiles.active=$Env> $LOG_PATH 2>&1 &
		echo "Start $AppName_Port success..."
		# 三十秒后打印日志
		# sleep 30
		tailf $LOG_PATH
	fi
}

function stop()
{
	echo "Stop $AppName_Port"

	PID=""
	query(){
		PID=`netstat -anp|grep :::$Port|awk '{printf $7}'|cut -d/ -f1`
		PID=`echo $PID | tr -cd "[0-9]" `
	}

	query
	if [ x"$PID" != x"" ]; then
		kill -9 $PID
		echo "$AppName_Port (pid:$PID) exiting..."
		while [ x"$PID" != x"" ]
		do
			sleep 1
			query
		done
		echo "$AppName_Port exited."
	else
		echo "$AppName_Port already stopped."
	fi
}

function restart()
{
    stop&&start
}

function status()
{
    PID=`netstat -anp|grep :::$Port|awk '{printf $7}'|cut -d/ -f1`
    PID=`echo $PID | tr -cd "[0-9]" `
    echo $PID
    if [ x"$PID" != x"" ];then
        echo "$AppName_Port is running..."
    else
        echo "$AppName_Port is not running..."
    fi
}

case $1 in
    start)
    start;;
    stop)
    stop;;
    restart)
    restart;;
    status)
    status;;
    *)

esac

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值