新增 stop.bat/ps1/sh,并写入本地开发规则:停服务用脚本、停后复核端口。 Co-authored-by: Cursor <cursoragent@cursor.com>
43 lines
1.3 KiB
Bash
43 lines
1.3 KiB
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
# 按端口终止 :3000 / :3001 的监听进程(含子进程)
|
|
# 用法:./stop.sh
|
|
|
|
ROOT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
cd "$ROOT_DIR"
|
|
|
|
kill_port() {
|
|
local port="$1"
|
|
local pids
|
|
if command -v lsof &>/dev/null; then
|
|
pids="$(lsof -tiTCP:"$port" -sTCP:LISTEN 2>/dev/null || true)"
|
|
elif command -v fuser &>/dev/null; then
|
|
fuser -k "${port}/tcp" 2>/dev/null || true
|
|
echo " :${port} 已尝试 fuser -k"
|
|
return
|
|
else
|
|
echo " 需要 lsof 或 fuser 才能按端口清理"
|
|
return 1
|
|
fi
|
|
if [ -z "${pids}" ]; then
|
|
echo " :${port} 空闲"
|
|
return
|
|
fi
|
|
# shellcheck disable=SC2086
|
|
echo " :${port} -> PID ${pids}"
|
|
kill ${pids} 2>/dev/null || true
|
|
sleep 0.3
|
|
# shellcheck disable=SC2086
|
|
kill -9 ${pids} 2>/dev/null || true
|
|
}
|
|
|
|
echo "══════════════════════════════════════════"
|
|
echo " jiang13-bbs Dev Stopper"
|
|
echo "══════════════════════════════════════════"
|
|
echo "按端口终止 :3000 / :3001 ..."
|
|
kill_port 3000
|
|
kill_port 3001
|
|
echo "完成。停库请另执行: docker compose down"
|
|
echo "══════════════════════════════════════════"
|