2019-03-07 12:09:03 -08:00
|
|
|
#!/bin/bash
|
|
|
|
# Run a command, suppressing output unless it hangs or crashes.
|
|
|
|
|
|
|
|
TMPFILE=`mktemp`
|
|
|
|
PID=$$
|
|
|
|
|
|
|
|
# Print output to avoid travis killing us
|
|
|
|
watchdog() {
|
|
|
|
for i in `seq 5 5 120`; do
|
|
|
|
sleep 300
|
|
|
|
echo "This command has been running for more than $i minutes..."
|
|
|
|
done
|
|
|
|
echo "Command timed out after 2h, dumping logs:"
|
|
|
|
cat $TMPFILE
|
|
|
|
echo "TIMED OUT"
|
|
|
|
kill -SIGKILL $PID
|
|
|
|
}
|
|
|
|
|
|
|
|
watchdog & 2>/dev/null
|
|
|
|
WATCHDOG_PID=$!
|
|
|
|
|
2019-03-21 00:15:24 -07:00
|
|
|
time "$@" >$TMPFILE 2>&1
|
2019-03-07 12:09:03 -08:00
|
|
|
|
|
|
|
CODE=$?
|
|
|
|
if [ $CODE != 0 ]; then
|
|
|
|
cat $TMPFILE
|
|
|
|
echo "FAILED $CODE"
|
|
|
|
kill $WATCHDOG_PID
|
|
|
|
exit $CODE
|
|
|
|
fi
|
|
|
|
|
|
|
|
kill $WATCHDOG_PID
|
|
|
|
exit 0
|