- 将各服务脚本统一到项目根目录scripts目录 - Assembly配置引用根目录scripts,避免重复 - 脚本自动从目录名推断服务名称 - 排除docker相关配置文件(application-docker.yml) - 新增env.properties环境变量配置模板 - 更新单机部署文档至v2.1
56 lines
1.4 KiB
Bash
Executable File
56 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
||
# 服务启动脚本
|
||
# 自动从目录名推断服务名称
|
||
|
||
# 获取脚本所在目录和服务名
|
||
SCRIPT_DIR=$(dirname "$(readlink -f "$0")")
|
||
APP_HOME=$(dirname "$SCRIPT_DIR")
|
||
APP_NAME=$(basename "$APP_HOME")
|
||
|
||
# 日志目录
|
||
LOG_HOME="/datacfs/applogs/${APP_NAME}"
|
||
|
||
# JAR文件路径
|
||
JAR_FILE="${APP_HOME}/lib/${APP_NAME}.jar"
|
||
|
||
# PID文件路径
|
||
PID_FILE="${APP_HOME}/${APP_NAME}.pid"
|
||
|
||
# 加载环境变量配置(如果存在)
|
||
if [ -f "${APP_HOME}/conf/env.properties" ]; then
|
||
source "${APP_HOME}/conf/env.properties"
|
||
fi
|
||
|
||
# JVM参数(可通过环境变量覆盖)
|
||
JAVA_OPTS="${JAVA_OPTS:--Xms256m -Xmx512m -XX:+UseG1GC -XX:MaxGCPauseMillis=200}"
|
||
|
||
# 日志参数
|
||
LOG_OPTS="-Dlogging.file.path=${LOG_HOME} -DAPP_NAME=${APP_NAME}"
|
||
|
||
# 配置文件路径
|
||
CONFIG_OPTS="--spring.config.location=${APP_HOME}/conf/application.yml"
|
||
|
||
# 检查是否已运行
|
||
if [ -f "$PID_FILE" ]; then
|
||
PID=$(cat $PID_FILE)
|
||
if ps -p $PID > /dev/null 2>&1; then
|
||
echo "${APP_NAME} is already running (PID: $PID)"
|
||
exit 1
|
||
fi
|
||
fi
|
||
|
||
# 创建日志目录
|
||
mkdir -p ${LOG_HOME}
|
||
|
||
# 启动服务
|
||
echo "Starting ${APP_NAME}..."
|
||
echo " APP_HOME: ${APP_HOME}"
|
||
echo " LOG_HOME: ${LOG_HOME}"
|
||
echo " JAVA_OPTS: ${JAVA_OPTS}"
|
||
|
||
nohup java $JAVA_OPTS $LOG_OPTS -jar $JAR_FILE $CONFIG_OPTS > /dev/null 2>&1 &
|
||
|
||
# 保存PID
|
||
echo $! > $PID_FILE
|
||
echo "${APP_NAME} started (PID: $(cat $PID_FILE))"
|