30 lines
1.2 KiB
Bash
30 lines
1.2 KiB
Bash
|
|
#!/usr/bin/env bash
|
|||
|
|
# 须用 bash 执行;若误用 sh/dash 会自动改用 bash 再跑一遍
|
|||
|
|
[ -n "${BASH_VERSION:-}" ] || exec /usr/bin/env bash "$0" ${1+"$@"}
|
|||
|
|
# 重启前端 vite(npm run dev);按 chat_web_project 使用的端口释放(默认读 .env 中 VITE_GLOB_FRONT_PORT)
|
|||
|
|
# 日志:gangyan/logs/frontend.log
|
|||
|
|
set -u
|
|||
|
|
source "$(cd "$(dirname "$0")" && pwd)/common-restart.sh"
|
|||
|
|
LOG_FILE="$LOG_DIR/frontend.log"
|
|||
|
|
|
|||
|
|
FRONT_ENV="$GANGYAN_ROOT/chat_web_front/.env"
|
|||
|
|
FRONT_PORT=3000
|
|||
|
|
if [ -f "$FRONT_ENV" ]; then
|
|||
|
|
_p=$(grep -E '^[[:space:]]*VITE_GLOB_FRONT_PORT=' "$FRONT_ENV" | head -1 | cut -d= -f2 | tr -d '\r"[:space:]')
|
|||
|
|
[ -n "${_p:-}" ] && FRONT_PORT="$_p"
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
log_tee "======== 停止前端(端口 $FRONT_PORT)========"
|
|||
|
|
for pid in $(lsof -ti :"$FRONT_PORT" -sTCP:LISTEN 2>/dev/null || true); do
|
|||
|
|
kill -TERM "$pid" 2>/dev/null && log_tee "TERM pid=$pid" || true
|
|||
|
|
done
|
|||
|
|
sleep 2
|
|||
|
|
for pid in $(lsof -ti :"$FRONT_PORT" -sTCP:LISTEN 2>/dev/null || true); do
|
|||
|
|
kill -KILL "$pid" 2>/dev/null && log_tee "KILL pid=$pid" || true
|
|||
|
|
done
|
|||
|
|
|
|||
|
|
log_tee "======== 启动 npm run dev ========"
|
|||
|
|
cd "$GANGYAN_ROOT/chat_web_front"
|
|||
|
|
nohup npm run dev >> "$LOG_FILE" 2>&1 &
|
|||
|
|
log_tee "已后台启动,PID=$! ,端口约 $FRONT_PORT ,日志: $LOG_FILE"
|