Files
SpineParticlesWeb/connector/launchers/macos/启动Spine连接器.command
T
2026-09-05 16:20:23 +08:00

52 lines
1.3 KiB
Bash

#!/bin/zsh
set -u
PACKAGE_DIR="${0:A:h}"
RUN_DIR="$PACKAGE_DIR/.run"
PID_FILE="$RUN_DIR/spine-connector.pid"
LOG_FILE="$RUN_DIR/spine-connector.log"
CONNECTOR_BIN="$PACKAGE_DIR/SpineParticleConnector"
HEALTH_URL="http://127.0.0.1:27843/v1/health"
mkdir -p "$RUN_DIR"
if [[ ! -x "$CONNECTOR_BIN" ]]; then
echo "未找到独立连接器:$CONNECTOR_BIN"
read "?按回车键关闭窗口..."
exit 1
fi
if [[ -f "$PID_FILE" ]]; then
CONNECTOR_PID="$(tr -dc '0-9' < "$PID_FILE")"
if [[ -n "$CONNECTOR_PID" ]] && kill -0 "$CONNECTOR_PID" 2>/dev/null; then
echo "Spine粒子连接器已经在运行。"
exit 0
fi
rm -f "$PID_FILE"
fi
echo "正在启动 Spine粒子连接器..."
nohup "$CONNECTOR_BIN" > "$LOG_FILE" 2>&1 < /dev/null &!
CONNECTOR_PID=$!
echo "$CONNECTOR_PID" > "$PID_FILE"
for _ in {1..40}; do
if ! kill -0 "$CONNECTOR_PID" 2>/dev/null; then
echo "连接器启动失败:"
tail -n 30 "$LOG_FILE"
rm -f "$PID_FILE"
read "?按回车键关闭窗口..."
exit 1
fi
if curl -fsS "$HEALTH_URL" >/dev/null 2>&1; then
echo "Spine粒子连接器启动成功,可以回到网页直接导出 .spine。"
exit 0
fi
sleep 0.25
done
echo "连接器启动超时,请查看日志:$LOG_FILE"
read "?按回车键关闭窗口..."
exit 1