Files
sanguo_vnpy/archive/2026-04-29-cleanup/scripts/deployment/start_auto_watcher.sh
T
2026-04-29 20:15:43 +08:00

84 lines
2.0 KiB
Bash
Executable File

#!/bin/bash
# ============================================
# 启动 sanguo_quant_live 自动监听服务
# 启动后,任何代码修改都会自动触发部署回测
# 完全无人值守!
# ============================================
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
LOG_FILE="$SCRIPT_DIR/auto_watcher.log"
PID_FILE="$SCRIPT_DIR/auto_watcher.pid"
start() {
echo "启动 sanguo_quant_live 自动监听服务..."
# 检查是否已经运行
if [ -f "$PID_FILE" ]; then
PID=$(cat "$PID_FILE")
if kill -0 "$PID" 2>/dev/null; then
echo "❌ 自动监听服务已经在运行 (PID: $PID)"
exit 1
fi
fi
# 后台启动(在虚拟环境中)
nohup bash -c "source '$SCRIPT_DIR/vnpy_env/bin/activate' && python3 '$SCRIPT_DIR/auto_watcher.py'" >> "$LOG_FILE" 2>&1 &
PID=$!
echo "$PID" > "$PID_FILE"
echo "✅ 自动监听服务已启动 (PID: $PID)"
echo "📝 日志: $LOG_FILE"
echo "🔍 现在您修改任何代码(策略/框架/配置)都会自动触发部署回测!"
echo "🎯 完全无人值守,喝茶去吧!"
}
stop() {
echo "停止自动监听服务..."
if [ ! -f "$PID_FILE" ]; then
echo "❌ 自动监听服务没有运行"
exit 1
fi
PID=$(cat "$PID_FILE")
kill "$PID" 2>/dev/null
rm -f "$PID_FILE"
echo "✅ 自动监听服务已停止"
}
status() {
if [ -f "$PID_FILE" ]; then
PID=$(cat "$PID_FILE")
if kill -0 "$PID" 2>/dev/null; then
echo "✅ 自动监听服务正在运行 (PID: $PID)"
else
echo "❌ PID 文件存在,但进程不存在"
fi
else
echo "❌ 自动监听服务没有运行"
fi
}
case "${1:-start}" in
start)
start
;;
stop)
stop
;;
status)
status
;;
restart)
stop
sleep 1
start
;;
*)
echo "用法: $0 {start|stop|status|restart}"
exit 1
;;
esac