This commit is contained in:
acgist
2022-11-09 08:28:37 +08:00
parent 44fa239d89
commit ec9a0ff37a
24 changed files with 1014 additions and 61 deletions

36
docs/bin/deploy.sh Normal file
View File

@@ -0,0 +1,36 @@
#!/bin/bash
# 进入目录
base=$(readlink -f $(dirname $0))
cd $base
echo "环境目录:$base"
echo "当前目录:$(pwd)"
# 更新代码
if [ -z $gited ]; then
echo "更新代码:${project.artifactId}-${project.version}"
git pull
fi
# 编译代码
if [ -z $mvned ]; then
echo "编译代码:${project.artifactId}-${project.version}"
mvn clean package install -pl "${project.groupId}:${project.artifactId}" -am -D skipTests -P ${env}
fi
# 删除文件:注意不要删除日志
rm -rf $base/../deploy/${project.artifactId}/bin
rm -rf $base/../deploy/${project.artifactId}/lib
rm -rf $base/../deploy/${project.artifactId}/config
# 运行目录
echo "拷贝文件:${project.artifactId}-${project.version}"
if [ ! -d "$base/../deploy/${project.artifactId}" ]; then
mkdir -p $base/../deploy/${project.artifactId}
fi
# 拷贝文件
cp -rf ${project.basedir}/target/${project.artifactId}-${project.version}/* $base/../deploy/${project.artifactId}
cp -rf ${project.basedir}/target/${project.artifactId}-${project.version}.jar $base/../deploy/${project.artifactId}
# 启动服务
cd $base/../deploy/${project.artifactId}
sh bin/startup.sh

46
docs/bin/startup.sh Normal file
View File

@@ -0,0 +1,46 @@
#!/bin/bash
# 启动目录
bin=$(readlink -f $(dirname $0))
base=${bin%/*}
cd $base
echo "启动目录:$base"
# Java运行环境
JAVA=$(which java)
if [ -z "$JAVA" ] ; then
echo "必须安装${java.version}+JDK"
exit 1
fi
# 结束任务
if [ ! -f "/.dockerenv" ]; then
sh bin/stop.sh
fi
# 启动参数
JAVA_OPTS_GC="-XX:+UseG1GC -Xlog:gc:./logs/gc.log:time,level"
JAVA_OPTS_MEM="-server ${system.maven.jvm.mem}"
JAVA_OPTS_EXT="-Dfile.encoding=${system.maven.encoding} -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true"
JAVA_OPTS_APP="-Dspring.profiles.active=${profile}"
JAVA_OPTS="$JAVA_OPTS_MEM $JAVA_OPTS_EXT $JAVA_OPTS_APP ${system.maven.jvm.arg}"
echo "启动参数:$JAVA_OPTS"
# 启动应用
echo "启动应用:${project.artifactId}-${project.version}"
if [ ! -f "/.dockerenv" ]; then
# 其他启动
nohup $JAVA $JAVA_OPTS -jar $base/lib/${project.artifactId}-${project.version}.jar > /dev/null 2>&1 &
else
# 使用docker启动后台启动不能查看控制台的信息
$JAVA $JAVA_OPTS -jar $base/lib/${project.artifactId}-${project.version}.jar
fi
# 等待任务
if [ ! -f "/.dockerenv" ]; then
sh bin/wait.sh
else
echo -e "\033[32m启动成功${project.artifactId}-${project.version}\033[0m"
fi
echo "--------------------------------"

24
docs/bin/stop.sh Normal file
View File

@@ -0,0 +1,24 @@
#!/bin/bash
# 结束任务
killIndex=0
processId=$(ps -aux | grep "${project.artifactId}" | grep java | awk '{print $2}')
if [ ! -z "$processId" ]; then
echo "关闭应用:${project.artifactId}-${project.version} - $processId"
while [ ! -z "$processId" ]
do
echo -n "."
if [ $killIndex -le 0 ]; then
# 优雅关机
kill -15 $processId
elif [ $killIndex -ge 10 ]; then
echo -n '强制关闭'
# 强制关机
kill -9 $processId
fi
sleep 1
killIndex=$((killIndex+1))
processId=$(ps -aux | grep "${project.artifactId}" | grep java | awk '{print $2}')
done
echo ""
fi

33
docs/bin/wait.sh Normal file
View File

@@ -0,0 +1,33 @@
#!/bin/bash
# 等待任务
startTime=$(date +%s)
processId=$(ps -aux | grep "${project.artifactId}" | grep java | awk '{print $2}')
if [ ! -z "$processId" ]; then
waitIndex=0
processPortNumber=$(netstat -anop | grep $processId | grep LISTEN | wc -l)
while [ $waitIndex -le 120 ] && [ ! -z "$processId" ] && [ $processPortNumber -lt 1 ]
do
sleep 1
waitIndex=$((waitIndex+1))
processId=$(ps -aux | grep "${project.artifactId}" | grep java | awk '{print $2}')
if [ ! -z "$processId" ]; then
processPortNumber=$(netstat -anop | grep $processId | grep LISTEN | wc -l)
else
processPortNumber=0
fi
echo -n "."
done
echo ""
fi
if [ $processPortNumber -lt 1 ]; then
echo -e "\033[31m启动失败${project.artifactId}-${project.version}\033[0m"
sh bin/stop.sh
exit 0
else
finishTime=$(date +%s)
processTime=$((finishTime-startTime))
echo -e "\033[32m启动成功${project.artifactId}-${project.version} - $processId\033[0m"
echo "启动端口:$(netstat -anop | grep $processId | grep LISTEN | awk '{print $4}')"
echo "启动耗时:$processTime S"
fi