#!/bin/sh
####################################################################
# RunTaskEveryXseconds.sh
# Run some task/cmds every X seconds until told to exit.
####################################################################
set -u
# Set interval between runs #
intervalSecs=30
ScriptFName="${0##*/}"
LockDirPath="/tmp/var/${ScriptFName%.*}_d.LOCK"
ExitSemFile="/tmp/var/${ScriptFName%.*}_f.EXIT"
_ReleaseLock_()
{ rm -f "$ExitSemFile" ; rm -fr "$LockDirPath" ; }
_AcquireLock_()
{
if mkdir "$LockDirPath" &>/dev/null
then return 0 ; else exit 1 ; fi
}
trap "_ReleaseLock_; exit 0" HUP INT QUIT ABRT TERM
_AcquireLock_
echo "Entering while loop..."
while true
do
echo "[$(date)]: Run some task/process every [$intervalSecs] sec."
...
## Run desired task/cmds here ##
...
if [ -f "$ExitSemFile" ]
then echo "Exiting while loop." ; break ; fi
sleep "$intervalSecs"
done
_ReleaseLock_
exit 0
#EOF#