view more/timeout.sh @ 1522:95a720e694a6

Switch x86_64 from nptl back to pthreads. This isn't the correct fix but uClibc apparently never tested nptl on x86-64, and one of the assembly files doesn't support PIC.
author Rob Landley <rob@landley.net>
date Thu, 10 May 2012 22:03:22 -0500
parents 2868f2d87624
children
line wrap: on
line source

#!/bin/bash

# Run a command line with a hang timeout, which kills the child process if it
# doesn't produce a new line of output for $1 seconds.

# This script has to be a separate process (rather than just a shell function)
# so killing it doesn't kill the parent process.

source sources/utility_functions.sh

if [ $# -lt 1 ]
then
  echo "Usage: timeout.sh SECONDS COMMANDS..." >&2
  exit 1
fi

trap "killtree $$" EXIT
TIMEOUT="$1"
shift
( eval "$@" ) | tee >(while read -t "$TIMEOUT" -n 32 i; do true; done; sleep 1; kill -TERM $$ 2>/dev/null )