--- name: wechat-auto-reply-status description: 查看微信自动回复 daemon 的运行状态(PID、是否存活、最近日志)。 --- # wechat-auto-reply-status 检查自动回复 daemon 是否在运行,并输出最近日志供排障。 ## 触发场景 - 用户说"自动回复有在跑吗"/"看下 bot 状态" - 报错调查:有消息但没回复时,用本技能看日志 ## 执行步骤 ```bash PID_FILE=~/.openclaw/wechat-auto-reply.pid LOG_FILE=~/.openclaw/logs/auto-reply.log echo "=== PID ===" if [ -f "$PID_FILE" ]; then PID=$(cat "$PID_FILE") if kill -0 "$PID" 2>/dev/null; then echo "running, PID=$PID" ps -o pid,etime,rss,cmd -p "$PID" 2>/dev/null || true else echo "pid file exists but process dead (PID=$PID)" fi else echo "not running (no pid file)" fi echo "" echo "=== Config ===" test -f ~/.openclaw/wechat-auto-reply-config.json \ && cat ~/.openclaw/wechat-auto-reply-config.json \ || echo "using built-in defaults (no config file)" echo "" echo "=== State ===" test -f ~/.openclaw/wechat-auto-reply-state.json \ && cat ~/.openclaw/wechat-auto-reply-state.json \ || echo "no state file yet (daemon hasn't polled)" echo "" echo "=== Last 30 log lines ===" test -f "$LOG_FILE" && tail -n 30 "$LOG_FILE" || echo "no log file" ``` ## 解读输出 - **running** + 最近日志有 `INFO received N new message(s)` 和 `INFO replied` → 一切正常 - **running** + 日志只有 `INFO daemon start` 没有 `received` → 轮询但没有新消息(可能是 since 太近) - **running** + 日志有 `WARN wechat offline` → 微信掉线,去 `8.138.37.248` 扫码 - **running** + 日志有 `ERROR send failed` → 后端 send-text 异常,看 body 字段 - **not running** → 调用 `wechat-auto-reply-start` 重启 - **pid file exists but process dead** → 异常退出,看最后日志行找原因后重启