- 路径说明:/opt路径下配置脚本api_run.sh,并在该路径下创建文件夹envment,上传jar包至envment下。
-/opt
---| api_run.sh
---| envment
-------|java.jar
-
启动命令: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包名称 -
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