Add a timeout on winexe call so the pre-backup commands cannot hang indefinitely. The version of timeout is only included on RHEL 5 because in EL6, coreutils provides one
parent
bb3a753f67
commit
c4f6c63b5a
4 changed files with 70 additions and 5 deletions
@ -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 "$@" |
Loading…
Reference in new issue