25 lines
678 B
Bash
25 lines
678 B
Bash
|
|
# build_weapp.sh - 通过 PID 文件精确杀掉自己上次的构建进程
|
|||
|
|
export OUTPUT_ROOT=dist
|
|||
|
|
PID_FILE="/tmp/coze-build_weapp.pid"
|
|||
|
|
|
|||
|
|
# 杀掉上次的构建进程组
|
|||
|
|
if [ -f "$PID_FILE" ]; then
|
|||
|
|
OLD_PID=$(cat "$PID_FILE")
|
|||
|
|
if kill -0 "$OLD_PID" 2>/dev/null; then
|
|||
|
|
echo "正在终止上次的构建进程组 (PID: $OLD_PID)..."
|
|||
|
|
# 关键:kill 负数 PID = 杀掉整个进程组
|
|||
|
|
kill -9 -"$OLD_PID" 2>/dev/null
|
|||
|
|
sleep 1
|
|||
|
|
fi
|
|||
|
|
rm -f "$PID_FILE"
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
# 用 setsid 创建新的进程组,方便下次整组杀掉
|
|||
|
|
setsid pnpm build:weapp &
|
|||
|
|
echo $! > "$PID_FILE"
|
|||
|
|
|
|||
|
|
echo "构建已启动 (PID: $(cat $PID_FILE))"
|
|||
|
|
|
|||
|
|
wait $!
|
|||
|
|
rm -f "$PID_FILE"
|