Files
MBTI_wang/scripts/dev_stop.sh

38 lines
998 B
Bash
Executable File

#!/usr/bin/env bash
# 结束本机 mbti王 开发进程(先按 pid 文件,再按端口)
set -euo pipefail
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
LOG_DIR="$ROOT/api/runtime"
PHP_PID_FILE="$LOG_DIR/dev-php.pid"
VITE_PID_FILE="$LOG_DIR/dev-vite.pid"
API_PORT="${MBTI_API_PORT:-8787}"
ADMIN_PORT="${MBTI_ADMIN_PORT:-5173}"
kill_pidfile() {
local f="$1"
[[ -f "$f" ]] || return 0
local p
p="$(tr -d ' \n\r\t' <"$f" || true)"
[[ -n "${p:-}" ]] || { rm -f "$f"; return 0; }
if kill -0 "$p" 2>/dev/null; then
echo "停止 pid $p ($f)"
kill -9 "$p" 2>/dev/null || true
fi
rm -f "$f"
}
kill_pidfile "$PHP_PID_FILE"
kill_pidfile "$VITE_PID_FILE"
for port in "$API_PORT" "$ADMIN_PORT"; do
pids="$(lsof -tiTCP:"$port" -sTCP:LISTEN 2>/dev/null || true)"
if [[ -n "${pids:-}" ]]; then
echo "停止端口 $port: $pids"
# shellcheck disable=SC2086
kill -9 ${pids} 2>/dev/null || true
else
echo "端口 $port 无监听"
fi
done
echo "完成"