36 lines
1.5 KiB
Bash
36 lines
1.5 KiB
Bash
|
|
#!/usr/bin/env bash
|
|||
|
|
set -euo pipefail
|
|||
|
|
# shellcheck disable=SC1091
|
|||
|
|
source "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/common.sh"
|
|||
|
|
|
|||
|
|
ensure_runtime_dir
|
|||
|
|
PID_FILE="$RUNTIME_DIR/server.pid"
|
|||
|
|
if [[ -f "$PID_FILE" ]] && kill -0 "$(cat "$PID_FILE")" 2>/dev/null; then
|
|||
|
|
echo "后端已在运行,PID $(cat "$PID_FILE")。"; exit 1
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
if ! mysql_query "$ELDER_DB_NAME" 'SELECT 1 FROM system_users LIMIT 1;' >/dev/null; then
|
|||
|
|
echo "无法连接已初始化的 MySQL 数据库 $ELDER_DB_NAME,请先运行 initialize.sh。" >&2
|
|||
|
|
exit 1
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
MAVEN="$(resolve_maven)"
|
|||
|
|
if [[ "${SKIP_BUILD:-0}" != "1" ]]; then
|
|||
|
|
"$MAVEN" -B -ntp -pl yudao-server -am package -DskipTests
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
JAR="$REPO_DIR/yudao-server/target/yudao-server.jar"
|
|||
|
|
[[ -f "$JAR" ]] || { echo "未找到 $JAR,请先完成 Maven 构建。" >&2; exit 1; }
|
|||
|
|
if (command -v lsof >/dev/null 2>&1 && lsof -nP -iTCP:"$ELDER_SERVER_PORT" -sTCP:LISTEN >/dev/null); then
|
|||
|
|
echo "端口 $ELDER_SERVER_PORT 已被占用。" >&2; exit 1
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
JAVA="$(resolve_java)"
|
|||
|
|
export ELDER_DB_HOST ELDER_DB_PORT ELDER_DB_NAME ELDER_DB_USER ELDER_DB_PASSWORD
|
|||
|
|
export ELDER_REDIS_HOST ELDER_REDIS_PORT ELDER_REDIS_DATABASE ELDER_REDIS_PASSWORD ELDER_SERVER_PORT
|
|||
|
|
export ELDER_LOG_FILE="$RUNTIME_DIR/application.log"
|
|||
|
|
nohup "$JAVA" -Xms256m -Xmx1024m -Dfile.encoding=UTF-8 -jar "$JAR" \
|
|||
|
|
--spring.profiles.active=local,desktop >"$RUNTIME_DIR/stdout.log" 2>"$RUNTIME_DIR/stderr.log" &
|
|||
|
|
echo $! > "$PID_FILE"
|
|||
|
|
echo "后端已启动,PID $(cat "$PID_FILE")。健康检查:http://127.0.0.1:$ELDER_SERVER_PORT/actuator/health"
|