#!/bin/bash main() { # Process arguments [ $# = 1 -a -x "$1" ] || usage SCRIPT=$1 # Sanity checks and derivations PATH=$PATH:. # Guts I=0 while :; do ((I++)) $SCRIPT >/dev/null & PID=$! sleep 3 if [ -d /proc/$PID ]; then echo "$SCRIPT (pid $PID) hung on ${I}th attempt; children dump follows ..." kill -USR1 $PID break fi done } usage() { echo "Usage: ${0##*/}