2025-07-10 22:04:44 +08:00
|
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
|
|
|
|
# 1. 终止占用9580端口的进程
|
|
|
|
|
|
PORT=9580
|
|
|
|
|
|
echo "➜ 正在检查端口 ${PORT} 的占用情况..."
|
|
|
|
|
|
PID=$(lsof -ti :${PORT})
|
|
|
|
|
|
|
|
|
|
|
|
if [ -n "$PID" ]; then
|
|
|
|
|
|
echo "➜ 发现占用端口的进程(PID: ${PID}),正在终止..."
|
|
|
|
|
|
kill -9 $PID
|
|
|
|
|
|
sleep 2 # 等待进程完全终止
|
|
|
|
|
|
echo "✓ 已终止进程"
|
|
|
|
|
|
else
|
|
|
|
|
|
echo "✓ 端口 ${PORT} 未被占用"
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
# 2. 激活虚拟环境并设置PYTHONPATH
|
|
|
|
|
|
source venv/bin/activate
|
|
|
|
|
|
export PYTHONPATH=.:$PYTHONPATH
|
|
|
|
|
|
|
|
|
|
|
|
# 3. 使用nohup运行并防止终端退出影响
|
|
|
|
|
|
echo "➜ 启动应用进程..."
|
2025-07-27 21:37:28 +08:00
|
|
|
|
#nohup python app/main.py > app.log 2>&1 &
|
2025-07-10 22:04:44 +08:00
|
|
|
|
|
2025-07-27 21:37:28 +08:00
|
|
|
|
#只能使用1个worker,共享全局变量使用会有问题
|
|
|
|
|
|
nohup uvicorn app.main:app --host 0.0.0.0 --port 9580 --workers 4 > app.log 2>&1 &
|
2025-07-10 22:04:44 +08:00
|
|
|
|
# 4. 验证新进程
|
|
|
|
|
|
sleep 3 # 等待进程启动
|
|
|
|
|
|
NEW_PID=$(lsof -ti :${PORT})
|
|
|
|
|
|
if [ -n "$NEW_PID" ]; then
|
|
|
|
|
|
echo "✓ 应用启动成功!PID: ${NEW_PID}"
|
|
|
|
|
|
echo "➜ 日志输出已重定向到 app.log"
|
|
|
|
|
|
echo "➜ 使用以下命令查看日志:"
|
|
|
|
|
|
echo " tail -f app.log"
|
|
|
|
|
|
else
|
|
|
|
|
|
echo "✗ 应用启动失败,请检查日志"
|
|
|
|
|
|
exit 1
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|