linux安装优化
新增脚本
This commit is contained in:
105
start_linux.sh
Normal file
105
start_linux.sh
Normal file
@@ -0,0 +1,105 @@
|
||||
#!/bin/bash
|
||||
|
||||
# ============================================================
|
||||
# Weibo-HotSign Linux 启动脚本
|
||||
# 使用方式: chmod +x start_linux.sh && ./start_linux.sh
|
||||
# ============================================================
|
||||
|
||||
PROJECT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
PID_DIR="${PROJECT_DIR}/.pids"
|
||||
LOG_DIR="${PROJECT_DIR}/logs"
|
||||
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
NC='\033[0m'
|
||||
|
||||
info() { echo -e "${GREEN}[✓]${NC} $1"; }
|
||||
warn() { echo -e "${YELLOW}[!]${NC} $1"; }
|
||||
error() { echo -e "${RED}[✗]${NC} $1"; exit 1; }
|
||||
|
||||
# 创建目录
|
||||
mkdir -p "$PID_DIR" "$LOG_DIR"
|
||||
|
||||
# 检查是否已在运行
|
||||
check_running() {
|
||||
local name=$1
|
||||
local pidfile="${PID_DIR}/${name}.pid"
|
||||
if [ -f "$pidfile" ]; then
|
||||
local pid=$(cat "$pidfile")
|
||||
if kill -0 "$pid" 2>/dev/null; then
|
||||
warn "${name} 已在运行 (PID: ${pid}),跳过"
|
||||
return 0
|
||||
else
|
||||
rm -f "$pidfile"
|
||||
fi
|
||||
fi
|
||||
return 1
|
||||
}
|
||||
|
||||
echo ""
|
||||
echo "========================================"
|
||||
echo " Weibo-HotSign 启动服务"
|
||||
echo "========================================"
|
||||
echo ""
|
||||
|
||||
# ------ 1. 启动 Auth Service (端口 8001) ------
|
||||
|
||||
if ! check_running "auth_service"; then
|
||||
info "启动 Auth Service (端口 8001)..."
|
||||
source "${PROJECT_DIR}/backend/venv/bin/activate"
|
||||
cd "${PROJECT_DIR}/backend"
|
||||
PYTHONPATH="${PROJECT_DIR}/backend" nohup python -m uvicorn auth_service.app.main:app \
|
||||
--host 0.0.0.0 --port 8001 \
|
||||
> "${LOG_DIR}/auth_service.log" 2>&1 &
|
||||
echo $! > "${PID_DIR}/auth_service.pid"
|
||||
deactivate
|
||||
cd "${PROJECT_DIR}"
|
||||
sleep 2
|
||||
info "Auth Service 已启动 (PID: $(cat ${PID_DIR}/auth_service.pid))"
|
||||
fi
|
||||
|
||||
# ------ 2. 启动 API Service (端口 8000) ------
|
||||
|
||||
if ! check_running "api_service"; then
|
||||
info "启动 API Service (端口 8000)..."
|
||||
source "${PROJECT_DIR}/backend/venv/bin/activate"
|
||||
cd "${PROJECT_DIR}/backend"
|
||||
PYTHONPATH="${PROJECT_DIR}/backend" nohup python -m uvicorn api_service.app.main:app \
|
||||
--host 0.0.0.0 --port 8000 \
|
||||
> "${LOG_DIR}/api_service.log" 2>&1 &
|
||||
echo $! > "${PID_DIR}/api_service.pid"
|
||||
deactivate
|
||||
cd "${PROJECT_DIR}"
|
||||
sleep 2
|
||||
info "API Service 已启动 (PID: $(cat ${PID_DIR}/api_service.pid))"
|
||||
fi
|
||||
|
||||
# ------ 3. 启动 Frontend (端口 5000) ------
|
||||
|
||||
if ! check_running "frontend"; then
|
||||
info "启动 Frontend (端口 5000)..."
|
||||
source "${PROJECT_DIR}/frontend/venv/bin/activate"
|
||||
cd "${PROJECT_DIR}/frontend"
|
||||
nohup python app.py \
|
||||
> "${LOG_DIR}/frontend.log" 2>&1 &
|
||||
echo $! > "${PID_DIR}/frontend.pid"
|
||||
deactivate
|
||||
cd "${PROJECT_DIR}"
|
||||
sleep 2
|
||||
info "Frontend 已启动 (PID: $(cat ${PID_DIR}/frontend.pid))"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "========================================"
|
||||
echo " 所有服务已启动"
|
||||
echo "========================================"
|
||||
echo ""
|
||||
echo " 前端界面: http://localhost:5000"
|
||||
echo " API Service: http://localhost:8000"
|
||||
echo " Auth Service: http://localhost:8001"
|
||||
echo ""
|
||||
echo " 日志目录: ${LOG_DIR}/"
|
||||
echo " 停止服务: ./stop_linux.sh"
|
||||
echo " 查看日志: tail -f logs/auth_service.log"
|
||||
echo ""
|
||||
Reference in New Issue
Block a user