08ea5fbe98
添加用户管理视图、API和状态管理文件
96 lines
2.3 KiB
Bash
Executable File
96 lines
2.3 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
API_DIR="$(cd "$(dirname "$0")/.." && pwd)/everything-is-suitable-api/everything-is-suitable-app"
|
|
PID_FILE="/tmp/everything-is-suitable-api.pid"
|
|
LOG_FILE="/tmp/every-is-suitable-api.log"
|
|
PORT=${API_PORT:-8080}
|
|
|
|
start_api() {
|
|
if [ -f "$PID_FILE" ]; then
|
|
PID=$(cat "$PID_FILE")
|
|
if ps -p "$PID" > /dev/null 2>&1; then
|
|
echo "API 服务已在运行中 (PID: $PID)"
|
|
return 0
|
|
fi
|
|
fi
|
|
|
|
echo "正在启动 API 服务..."
|
|
cd "$API_DIR"
|
|
|
|
mvn spring-boot:run -Dspring-boot.run.arguments="--server.port=$PORT" > "$LOG_FILE" 2>&1 &
|
|
PID=$!
|
|
echo $PID > "$PID_FILE"
|
|
|
|
echo "等待服务启动..."
|
|
MAX_WAIT=60
|
|
WAITED=0
|
|
while [ $WAITED -lt $MAX_WAIT ]; do
|
|
if curl -s "http://localhost:$PORT/actuator/health" > /dev/null 2>&1; then
|
|
echo "✅ API 服务已成功启动 (PID: $PID, Port: $PORT)"
|
|
echo "日志文件: $LOG_FILE"
|
|
return 0
|
|
fi
|
|
sleep 2
|
|
WAITED=$((WAITED + 2))
|
|
echo "等待中... ($WAITED 秒)"
|
|
done
|
|
|
|
echo "❌ API 服务启动超时"
|
|
stop_api
|
|
return 1
|
|
}
|
|
|
|
stop_api() {
|
|
if [ -f "$PID_FILE" ]; then
|
|
PID=$(cat "$PID_FILE")
|
|
if ps -p "$PID" > /dev/null 2>&1; then
|
|
echo "正在停止 API 服务 (PID: $PID)..."
|
|
kill "$PID"
|
|
rm -f "$PID_FILE"
|
|
echo "✅ API 服务已停止"
|
|
else
|
|
echo "API 服务未运行"
|
|
rm -f "$PID_FILE"
|
|
fi
|
|
else
|
|
echo "未找到 PID 文件,API 服务可能未运行"
|
|
fi
|
|
}
|
|
|
|
status_api() {
|
|
if [ -f "$PID_FILE" ]; then
|
|
PID=$(cat "$PID_FILE")
|
|
if ps -p "$PID" > /dev/null 2>&1; then
|
|
echo "API 服务运行中 (PID: $PID, Port: $PORT)"
|
|
curl -s "http://localhost:$PORT/actuator/health" | jq . 2>/dev/null || echo "健康检查端点可访问"
|
|
return 0
|
|
fi
|
|
fi
|
|
echo "API 服务未运行"
|
|
return 1
|
|
}
|
|
|
|
case "${1:-}" in
|
|
start)
|
|
start_api
|
|
;;
|
|
stop)
|
|
stop_api
|
|
;;
|
|
restart)
|
|
stop_api
|
|
sleep 2
|
|
start_api
|
|
;;
|
|
status)
|
|
status_api
|
|
;;
|
|
*)
|
|
echo "用法: $0 {start|stop|restart|status}"
|
|
echo ""
|
|
echo "环境变量:"
|
|
echo " API_PORT - API 服务端口 (默认: 8080)"
|
|
exit 1
|
|
;;
|
|
esac
|