Files
digital-psychology/tools/cece_capture_watchdog.sh
T
jackyu66gitandCursor 53eb4577b3 feat: 按测测功能重构 H5 首页与各子页,并修正顶栏「+」添加档案菜单
对齐测测交互:首页「+」支持邀请填档案/添加档案/邀请合盘;各 Tab 与工具页按同一视觉与功能标准落地;本地对照截图目录显式忽略。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-05 14:32:35 +08:00

44 lines
1.4 KiB
Bash
Executable File

#!/bin/bash
# Watchdog: keep deep crawl alive; restart on death.
set -u
ROOT="/Users/jack/Project/digital-psychology"
LOG="/tmp/cece-capture-deep-full.log"
PIDFILE="/tmp/cece-capture-deep.pid"
MAX_RESTARTS=30
cd "$ROOT"
restart=0
while [ "$restart" -lt "$MAX_RESTARTS" ]; do
if [ -f "$PIDFILE" ] && kill -0 "$(cat "$PIDFILE")" 2>/dev/null; then
sleep 20
continue
fi
restart=$((restart + 1))
echo "[$(date '+%F %T')] watchdog start #$restart" >> "$LOG"
adb shell am start -n com.xxwolo.cc5/com.cece.app.MainActivity >/dev/null 2>&1 || true
sleep 2
nohup python3 -u tools/cece_capture_deep.py >> "$LOG" 2>&1 &
echo $! > "$PIDFILE"
echo "[$(date '+%F %T')] pid=$(cat "$PIDFILE")" >> "$LOG"
# wait until death
while kill -0 "$(cat "$PIDFILE")" 2>/dev/null; do
sleep 15
# stall detection: no log growth 3 min
if [ -f "$LOG" ]; then
sz1=$(wc -c < "$LOG")
sleep 90
sz2=$(wc -c < "$LOG")
if [ "$sz1" -eq "$sz2" ] && kill -0 "$(cat "$PIDFILE")" 2>/dev/null; then
echo "[$(date '+%F %T')] stall → kill $(cat "$PIDFILE")" >> "$LOG"
kill "$(cat "$PIDFILE")" 2>/dev/null || true
sleep 2
kill -9 "$(cat "$PIDFILE")" 2>/dev/null || true
break
fi
fi
done
echo "[$(date '+%F %T')] crawl exited, restart soon" >> "$LOG"
sleep 5
done
echo "[$(date '+%F %T')] watchdog gave up after $MAX_RESTARTS" >> "$LOG"