47 lines
1.1 KiB
Bash
47 lines
1.1 KiB
Bash
#!/bin/bash
|
||
# stop_api.sh - 停止API服务
|
||
|
||
PID_FILE=logs/api.pid
|
||
|
||
echo "========================================"
|
||
echo "停止 AI+合规智能中枢 API服务"
|
||
echo "========================================"
|
||
echo ""
|
||
|
||
if [ -f "$PID_FILE" ]; then
|
||
PID=$(cat $PID_FILE)
|
||
|
||
if ps -p $PID > /dev/null 2>&1; then
|
||
echo "正在停止服务 (PID: $PID)..."
|
||
kill $PID
|
||
|
||
# 等待进程结束
|
||
sleep 2
|
||
|
||
if ps -p $PID > /dev/null 2>&1; then
|
||
echo "进程未响应,强制终止..."
|
||
kill -9 $PID
|
||
fi
|
||
|
||
rm -f $PID_FILE
|
||
echo "服务已停止"
|
||
else
|
||
echo "进程已不存在,清理PID文件"
|
||
rm -f $PID_FILE
|
||
fi
|
||
else
|
||
echo "PID文件不存在,服务可能未运行"
|
||
|
||
# 尝试查找并停止所有uvicorn进程
|
||
UVICORN_PIDS=$(pgrep -f "uvicorn app.main:app")
|
||
if [ -n "$UVICORN_PIDS" ]; then
|
||
echo "发现运行中的uvicorn进程: $UVICORN_PIDS"
|
||
echo "是否停止这些进程? (y/n)"
|
||
read -r answer
|
||
if [ "$answer" = "y" ]; then
|
||
kill $UVICORN_PIDS
|
||
echo "进程已停止"
|
||
fi
|
||
fi
|
||
fi
|