47 lines
1.2 KiB
Bash
47 lines
1.2 KiB
Bash
#!/bin/bash
|
|
|
|
echo "=========================================="
|
|
echo " 启动 AI Chat 平台 (前端 + 后端) "
|
|
echo "=========================================="
|
|
|
|
# 设置清理函数,在收到 Ctrl+C 时关闭所有子进程
|
|
cleanup() {
|
|
echo ""
|
|
echo "正在关闭所有服务..."
|
|
kill $(jobs -p) 2>/dev/null
|
|
exit
|
|
}
|
|
|
|
# 清除旧进程
|
|
lsof -i :8000 -t | xargs -r kill -9; lsof -i :5173 -t | xargs -r kill -9;
|
|
|
|
# 捕获退出信号
|
|
trap cleanup SIGINT SIGTERM EXIT
|
|
|
|
# 启动后端
|
|
echo "[系统] 正在启动后端服务器..."
|
|
cd /home/mt/Project/ai-chat-ui/server
|
|
if [ -d ".venv" ]; then
|
|
source .venv/bin/activate
|
|
# 使用 -u 参数强制不缓冲输出,实时显示日志
|
|
python3 -u main.py &
|
|
else
|
|
echo "[错误] 未找到虚拟环境 (.venv)。请先创建。"
|
|
fi
|
|
|
|
# 等待一小段时间确保后端启动
|
|
sleep 2
|
|
|
|
# 启动前端
|
|
echo "[系统] 正在启动前端服务器..."
|
|
cd /home/mt/Project/ai-chat-ui
|
|
# 启动 vite 开发服务器
|
|
npm run dev &
|
|
|
|
echo "=========================================="
|
|
echo " 服务已启动,按 Ctrl+C 停止 "
|
|
echo "=========================================="
|
|
|
|
# 使用 wait 阻塞主进程,保持脚本运行,这样可以看到调试打印信息
|
|
wait
|