You need to sign in or sign up before continuing.
start.sh 1.52 KB
#!/bin/bash
# 启动 LangGraph 服务

# 自动检测项目目录(脚本所在目录的父目录)
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
APP_DIR="$(dirname "$SCRIPT_DIR")"
LOG_DIR="$APP_DIR/logs"
PID_FILE="$LOG_DIR/app.pid"
LOG_FILE="$LOG_DIR/app.log"

# 创建日志目录
mkdir -p "$LOG_DIR"

# 检查是否已在运行
if [ -f "$PID_FILE" ]; then
    PID=$(cat "$PID_FILE")
    if ps -p "$PID" > /dev/null 2>&1; then
        echo "服务已在运行 (PID: $PID)"
        exit 1
    else
        rm -f "$PID_FILE"
    fi
fi

# 检查应用目录
if [ ! -d "$APP_DIR" ]; then
    echo "错误: 应用目录不存在: $APP_DIR"
    exit 1
fi

# 进入应用目录
cd "$APP_DIR" || exit 1

# 激活虚拟环境
if [ ! -d "venv" ]; then
    echo "错误: 虚拟环境不存在,请先创建虚拟环境"
    exit 1
fi

source venv/bin/activate

# 检查 .env 文件
if [ ! -f ".env" ]; then
    echo "警告: .env 文件不存在,请先配置环境变量"
fi

# 启动服务
echo "正在启动 LangGraph 服务..."
nohup python start_server_direct.py > "$LOG_FILE" 2>&1 &
PID=$!

# 保存进程ID
echo $PID > "$PID_FILE"

# 等待一下,检查进程是否启动成功
sleep 2
if ps -p "$PID" > /dev/null 2>&1; then
    echo "✅ 服务已启动 (PID: $PID)"
    echo "📝 日志文件: $LOG_FILE"
    echo "🌐 访问地址: http://$(hostname -I | awk '{print $1}'):2025"
    echo "📊 查看日志: tail -f $LOG_FILE"
else
    echo "❌ 服务启动失败,请查看日志: $LOG_FILE"
    rm -f "$PID_FILE"
    exit 1
fi