test
This commit is contained in:
@@ -22,8 +22,12 @@ _stop_fe() {
|
|||||||
if [[ -f "$pidfile" ]]; then
|
if [[ -f "$pidfile" ]]; then
|
||||||
local pid; pid=$(cat "$pidfile")
|
local pid; pid=$(cat "$pidfile")
|
||||||
if kill -0 "$pid" 2>/dev/null; then
|
if kill -0 "$pid" 2>/dev/null; then
|
||||||
# 杀掉整个进程组(覆盖 npm/pnpm/yarn 子进程)
|
# 只杀该前端的进程树,避免同一脚本启动的其它前端共享进程组时被误杀。
|
||||||
kill -- -"$(ps -o pgid= -p "$pid" 2>/dev/null | tr -d ' ')" 2>/dev/null || kill "$pid" 2>/dev/null || true
|
_kill_tree "$pid" TERM
|
||||||
|
sleep 1
|
||||||
|
if kill -0 "$pid" 2>/dev/null; then
|
||||||
|
_kill_tree "$pid" KILL
|
||||||
|
fi
|
||||||
success "$name 已停止 (PID=$pid)"
|
success "$name 已停止 (PID=$pid)"
|
||||||
else
|
else
|
||||||
warn "$name 进程不存在(可能已退出)"
|
warn "$name 进程不存在(可能已退出)"
|
||||||
@@ -34,6 +38,16 @@ _stop_fe() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_kill_tree() {
|
||||||
|
local pid="$1" signal="${2:-TERM}"
|
||||||
|
local children child
|
||||||
|
children=$(pgrep -P "$pid" 2>/dev/null || true)
|
||||||
|
for child in $children; do
|
||||||
|
_kill_tree "$child" "$signal"
|
||||||
|
done
|
||||||
|
kill "-$signal" "$pid" 2>/dev/null || true
|
||||||
|
}
|
||||||
|
|
||||||
if [[ "$TARGET" == "all" ]]; then
|
if [[ "$TARGET" == "all" ]]; then
|
||||||
step "停止全部前端开发服务器"
|
step "停止全部前端开发服务器"
|
||||||
for proj in "${FE_PROJECTS[@]}"; do
|
for proj in "${FE_PROJECTS[@]}"; do
|
||||||
|
|||||||
Reference in New Issue
Block a user