- 实现微信登录、手机号绑定、token验证和登出功能 - 添加打卡系统,支持正常、迟到、请假等状态记录 - 集成课程投票功能,支持多课程选择和评分评论 - 开发反馈系统,支持图文反馈提交和管理员处理 - 构建首页页面模块,动态展示学习资源和个人信息 - 设计计划管理系统,支持周/月/年计划制定和跟踪 - 实现小组计划统计和历史记录查询功能 - 完善用户认证会话管理和数据库交互逻辑
42 lines
1.0 KiB
Bash
42 lines
1.0 KiB
Bash
#!/usr/bin/env bash
|
|
# 明缘进阶场 FastAPI 停止脚本 (CentOS7, 固定路径)
|
|
PID_FILE=/home/clock_server/logs/prd/server.pid
|
|
PORT=8001
|
|
|
|
kill_pid() {
|
|
local pid="$1"
|
|
[ -z "$pid" ] && return 0
|
|
echo "停止 PID $pid"
|
|
kill "$pid" 2>/dev/null || true
|
|
for _ in $(seq 1 30); do
|
|
if ! kill -0 "$pid" 2>/dev/null; then break; fi
|
|
sleep 0.5
|
|
done
|
|
if kill -0 "$pid" 2>/dev/null; then
|
|
echo "进程未退出,强制结束 PID $pid"
|
|
kill -9 "$pid" 2>/dev/null || true
|
|
fi
|
|
}
|
|
|
|
# 1) 按 PID 文件
|
|
if [ -f "$PID_FILE" ]; then
|
|
PID="$(cat "$PID_FILE" 2>/dev/null || true)"
|
|
kill_pid "$PID"
|
|
rm -f "$PID_FILE"
|
|
fi
|
|
|
|
# 2) 按命令行兜底(uvicorn)
|
|
for p in $(pgrep -f "uvicorn server_prd.main:app" 2>/dev/null || true); do
|
|
kill_pid "$p"
|
|
done
|
|
|
|
# 3) 按端口兜底:杀掉占用 8001 的任何进程
|
|
FUSER_BIN="$(command -v fuser || true)"
|
|
if [ -n "$FUSER_BIN" ]; then
|
|
echo "检查并释放端口 $PORT"
|
|
$FUSER_BIN -k "$PORT/tcp" 2>/dev/null || true
|
|
$FUSER_BIN -k -n tcp "$PORT" 2>/dev/null || true
|
|
fi
|
|
sleep 1
|
|
|
|
echo "完成" |