77 lines
1.1 KiB
Bash
77 lines
1.1 KiB
Bash
#!/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 "➜ 启动应用进程..."
|
||
#nohup python app/main.py > app.log 2>&1 &
|
||
|
||
#只能使用1个worker,共享全局变量使用会有问题
|
||
nohup uvicorn app.main:app --host 0.0.0.0 --port 9580 --workers 4 > app.log 2>&1 &
|
||
# 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
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|