112 lines
2.2 KiB
Bash
112 lines
2.2 KiB
Bash
|
|
#!/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
|
|||
|
|
|
|||
|
|
|