spine连接器和导出修改
This commit is contained in:
1 parent
535f8d7558
commit
0bde824c88
81 files changed
+11800
-1251
No files matched your search
Executable
+38
@@ -0,0 +1,38 @@
|
||||
#!/bin/zsh
|
||||
|
||||
set -u
|
||||
|
||||
PROJECT_DIR="${0:A:h}"
|
||||
PID_FILE="$PROJECT_DIR/.run/spine-connector.pid"
|
||||
|
||||
CONNECTOR_PID=""
|
||||
if [[ -f "$PID_FILE" ]]; then CONNECTOR_PID="$(tr -dc '0-9' < "$PID_FILE")"; fi
|
||||
|
||||
# PID 文件可能因手动启动、异常退出或脚本升级而缺失。此时回查连接器固定端口。
|
||||
if [[ -z "$CONNECTOR_PID" ]] || ! kill -0 "$CONNECTOR_PID" 2>/dev/null; then
|
||||
CONNECTOR_PID="$(lsof -tiTCP:27843 -sTCP:LISTEN 2>/dev/null | head -n 1)"
|
||||
fi
|
||||
|
||||
if [[ -z "$CONNECTOR_PID" ]] || ! kill -0 "$CONNECTOR_PID" 2>/dev/null; then
|
||||
rm -f "$PID_FILE"
|
||||
echo "Spine粒子连接器已经停止。"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
COMMAND="$(ps -p "$CONNECTOR_PID" -o command= 2>/dev/null)"
|
||||
PROCESS_CWD="$(lsof -a -p "$CONNECTOR_PID" -d cwd -Fn 2>/dev/null | sed -n 's/^n//p' | head -n 1)"
|
||||
if [[ "$COMMAND" != *"connector/spine-connector.mjs"* ]] || [[ "$PROCESS_CWD" != "$PROJECT_DIR" ]]; then
|
||||
echo "27843 端口对应的进程不属于当前项目,为避免误关,本次未执行停止。"
|
||||
echo "进程目录:${PROCESS_CWD:-未知}"
|
||||
rm -f "$PID_FILE"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
kill "$CONNECTOR_PID" 2>/dev/null || true
|
||||
for _ in {1..30}; do
|
||||
if ! kill -0 "$CONNECTOR_PID" 2>/dev/null; then break; fi
|
||||
sleep 0.1
|
||||
done
|
||||
if kill -0 "$CONNECTOR_PID" 2>/dev/null; then kill -KILL "$CONNECTOR_PID" 2>/dev/null || true; fi
|
||||
rm -f "$PID_FILE"
|
||||
echo "Spine粒子连接器已停止。"
|
||||
Reference in new issue
Block a user