#!/bin/sh
# DF-0079 serial-console watcher v2. Polls for the df0079 wedge process and
# dumps ps/top snapshots to /dev/ttyd0 (comconsole) -> host boot.log, which
# survives a guest reset. Broad pgrep pattern matches argv './df0079'.
T=/dev/ttyd0
mark() { printf '\n##### %s #####\n' "$*" >> $T; }
mark "WATCHER2_START $(date)"
mark "baseline top:"
top -b -n 1 2>/dev/null | sed -n '1,8p' >> $T
i=0
while [ $i -lt 100 ]; do
  P=$(pgrep -n -f df0079 2>/dev/null)
  if [ -n "$P" ] && [ "$P" != "$$" ]; then
    mark "WEDGE pid=$P iter=$i t=$(date +%T)"
    ps -p $P -o pid,ppid,stat,uid,pcpu,cputime,comm,args >> $T 2>&1
    top -b -n 1 2>/dev/null | sed -n '1,6p' >> $T 2>&1
  fi
  sleep 0.15
  i=$((i+1))
done
mark "WATCHER2_EXIT"
