elder-yudao-pro/deploy/local/start.sh

36 lines
1.5 KiB
Bash
Raw Normal View History

#!/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"