summaryrefslogtreecommitdiffstats
path: root/scratch/bash-3.1-postpatch/examples/scripts/timeout
diff options
context:
space:
mode:
authorPete Travis <immanetize@fedoraproject.org>2014-10-01 11:33:51 -0600
committerPete Travis <immanetize@fedoraproject.org>2014-10-01 11:33:51 -0600
commit3f6c1435a4cbdf73a65639b05898a01c0dfc21ac (patch)
treec29f3db44b106fc8b145656cd0238341551b22c0 /scratch/bash-3.1-postpatch/examples/scripts/timeout
parent46c50fce0354d81d347a8055314a688fc8aa9f52 (diff)
downloadrpmbuild-sles10-bash.tar.gz
rpmbuild-sles10-bash.tar.xz
rpmbuild-sles10-bash.zip
we might need this sles10 stuff latersles10-bash
Diffstat (limited to 'scratch/bash-3.1-postpatch/examples/scripts/timeout')
-rw-r--r--scratch/bash-3.1-postpatch/examples/scripts/timeout53
1 files changed, 53 insertions, 0 deletions
diff --git a/scratch/bash-3.1-postpatch/examples/scripts/timeout b/scratch/bash-3.1-postpatch/examples/scripts/timeout
new file mode 100644
index 0000000..ac8d88f
--- /dev/null
+++ b/scratch/bash-3.1-postpatch/examples/scripts/timeout
@@ -0,0 +1,53 @@
+#Newsgroups: comp.unix.admin,comp.unix.solaris,comp.unix.shell
+#From: gwc@root.co.uk (Geoff Clare)
+#Subject: Re: timeout -t <sec> <unix command> (Re: How to give rsh a shorter timeout?)
+#Message-ID: <EoBxrs.223@root.co.uk>
+#Date: Fri, 13 Feb 1998 18:23:52 GMT
+
+#
+# Conversion to bash v2 syntax done by Chet Ramey <chet@po.cwru.edu
+# UNTESTED
+#
+
+prog=${0##*/}
+usage="usage: $prog [-signal] [timeout] [:interval] [+delay] [--] <command>"
+
+SIG=-TERM # default signal sent to the process when the timer expires
+timeout=60 # default timeout
+interval=15 # default interval between checks if the process is still alive
+delay=2 # default delay between posting the given signal and
+ # destroying the process (kill -KILL)
+
+while :
+do
+ case $1 in
+ --) shift; break ;;
+ -*) SIG=$1 ;;
+ [0-9]*) timeout=$1 ;;
+ :*) EXPR='..\(.*\)' ; interval=`expr x"$1" : "$EXPR"` ;;
+ +*) EXPR='..\(.*\)' ; delay=`expr x"$1" : "$EXPR"` ;;
+ *) break ;;
+ esac
+ shift
+done
+
+case $# in
+0) echo "$prog: $usage" >&2 ; exit 2 ;;
+esac
+
+(
+ for t in $timeout $delay
+ do
+ while (( $t > $interval ))
+ do
+ sleep $interval
+ kill -0 $$ || exit
+ t=$(( $t - $interval ))
+ done
+ sleep $t
+ kill $SIG $$ && kill -0 $$ || exit
+ SIG=-KILL
+ done
+) 2> /dev/null &
+
+exec "$@"