54 lines
1.7 KiB
Bash
Executable File
54 lines
1.7 KiB
Bash
Executable File
#!/bin/sh
|
|
#########################################################################################################
|
|
##
|
|
## Name: forever
|
|
## Created: September 2015
|
|
## Author(s): Philip Smart
|
|
## Description: A shell script to run a given program in a continuous loop.
|
|
##
|
|
## Credits:
|
|
## Copyright: (c) 2015-2019 Philip Smart <philip.smart@net2net.org>
|
|
##
|
|
## History: September 2015 - Initial module written.
|
|
##
|
|
#########################################################################################################
|
|
## This source file is free software: you can redistribute it and#or modify
|
|
## it under the terms of the GNU General Public License as published
|
|
## by the Free Software Foundation, either version 3 of the License, or
|
|
## (at your option) any later version.
|
|
##
|
|
## This source file is distributed in the hope that it will be useful,
|
|
## but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
## GNU General Public License for more details.
|
|
##
|
|
## You should have received a copy of the GNU General Public License
|
|
## along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
#########################################################################################################
|
|
|
|
trap exit 15
|
|
|
|
count=1
|
|
sval=1
|
|
while : ; do
|
|
$@
|
|
|
|
if [ $? -eq 0 ]; then
|
|
exit 0
|
|
fi
|
|
|
|
if [ $count -le 100 ] ; then
|
|
sval=10
|
|
elif [ $count -le 200 ] ; then
|
|
sval=60
|
|
else
|
|
sval=120
|
|
logger -t FOREVER -p user.emerg "PROGRAM '$@' HAS JUST DIED ... RESTARTING IT IN $sval SECONDS"
|
|
fi
|
|
|
|
echo "Restarting '$@', in $sval seconds ($count)..."
|
|
sleep $sval
|
|
|
|
count=`expr $count + 1`
|
|
done
|