> #!/bin/sh
> remaining=$1;shift
> cmd=$@
> lock=/var/run/$(basename $1).lock
> [ -f $lock ] || {
> touch $lock
> while [ $remaining -gt 0 ]; do
> seconds=$(($RANDOM % $remaining))
> echo $(date) $seconds >> $lock
> sleep $seconds
> $cmd && return || remaining=$(($remaining - $seconds))
> done
> rm $lock
> }
>
*groan*.. another mistake.. I'm such an idiot sometimes ;-)
I don't recommend running this without checking it first.
#!/bin/sh
remaining=$1;shift
cmd=$@
lock=/var/run/$(basename $1).lock
[ -f $lock ] || {
touch $lock
while [ $remaining -gt 0 ]; do
seconds=$(($RANDOM % $remaining))
echo $(date) $seconds >> $lock
sleep $seconds
$cmd && break || remaining=$(($remaining - $seconds))
done
rm $lock
}