Files
AIGC/demo/deploy_baota/backend/start.sh
2025-11-13 17:01:39 +08:00

112 lines
2.2 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# 宝塔面板后端启动脚本
# 设置JAVA_HOME根据实际Java安装路径修改
# export JAVA_HOME=/usr/lib/jvm/java-21-openjdk
# export PATH=$JAVA_HOME/bin:$PATH
# 应用配置
APP_NAME="aigc-backend"
APP_JAR="app.jar"
APP_PORT=8080
APP_HOME=$(cd "$(dirname "$0")"; pwd)
LOG_DIR="$APP_HOME/logs"
PID_FILE="$APP_HOME/app.pid"
# JVM参数根据服务器内存调整
JAVA_OPTS="-Xms1g -Xmx4g -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -Djava.security.egd=file:/dev/./urandom"
# 创建日志目录
mkdir -p $LOG_DIR
# 启动函数
start() {
if [ -f "$PID_FILE" ]; then
PID=$(cat $PID_FILE)
if ps -p $PID > /dev/null 2>&1; then
echo "$APP_NAME 已经在运行中 (PID: $PID)"
return 1
else
rm -f $PID_FILE
fi
fi
echo "启动 $APP_NAME..."
cd $APP_HOME
nohup java $JAVA_OPTS -jar $APP_JAR --spring.profiles.active=prod > $LOG_DIR/app.log 2>&1 &
echo $! > $PID_FILE
echo "$APP_NAME 启动成功 (PID: $(cat $PID_FILE))"
}
# 停止函数
stop() {
if [ ! -f "$PID_FILE" ]; then
echo "$APP_NAME 未运行"
return 1
fi
PID=$(cat $PID_FILE)
if ps -p $PID > /dev/null 2>&1; then
echo "停止 $APP_NAME (PID: $PID)..."
kill $PID
sleep 3
if ps -p $PID > /dev/null 2>&1; then
kill -9 $PID
fi
rm -f $PID_FILE
echo "$APP_NAME 已停止"
else
echo "$APP_NAME 未运行"
rm -f $PID_FILE
fi
}
# 重启函数
restart() {
stop
sleep 2
start
}
# 状态检查
status() {
if [ -f "$PID_FILE" ]; then
PID=$(cat $PID_FILE)
if ps -p $PID > /dev/null 2>&1; then
echo "$APP_NAME 正在运行 (PID: $PID)"
return 0
else
echo "$APP_NAME 未运行"
rm -f $PID_FILE
return 1
fi
else
echo "$APP_NAME 未运行"
return 1
fi
}
# 主逻辑
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
status)
status
;;
*)
echo "用法: $0 {start|stop|restart|status}"
exit 1
;;
esac
exit 0