103 lines
2.7 KiB
Bash
Executable file
103 lines
2.7 KiB
Bash
Executable file
#! /bin/sh
|
|
#
|
|
# botchk
|
|
#
|
|
# $Id: botchk,v 1.6 2002/02/27 18:21:46 guppy Exp $
|
|
#
|
|
# This is a script suitable for use in a crontab. It checks to make sure
|
|
# your bot is running. YOU NEED A SEPARATE CRON JOB FOR EACH BOT. If your
|
|
# bot isn't found, it'll try to start it back up.
|
|
#
|
|
# You'll need to edit this script for your bot.
|
|
#
|
|
# To check for your bot every 10 minutes, put the following line in your
|
|
# crontab:
|
|
# 0,10,20,30,40,50 * * * * /home/mydir/mybot/botchk
|
|
# And if you don't want to get email from crontab when it checks you bot,
|
|
# put the following in your crontab:
|
|
# 0,10,20,30,40,50 * * * * /home/mydir/mybot/botchk >/dev/null 2>&1
|
|
#
|
|
|
|
# change this to the directory you run your bot from (capitalization COUNTS):
|
|
botdir="/home/mydir/mybot"
|
|
|
|
# change this to the name of your bot's config file (capitalization COUNTS):
|
|
botscript="mybot"
|
|
|
|
# change this to the botnet-nick of your bot (capitalization COUNTS):
|
|
botname="LamestBot"
|
|
|
|
# change this to the name of your bot's userfile (capitalization COUNTS):
|
|
userfile="LamestBot.user"
|
|
|
|
# change this to the name of your bot's pidfile (capitalization COUNTS):
|
|
pidfile="pid.LamestBot"
|
|
|
|
########## you probably don't need to change anything below here ##########
|
|
|
|
cd $botdir
|
|
|
|
# is there a pid file?
|
|
if test -r $pidfile
|
|
then
|
|
# there is a pid file -- is it current?
|
|
botpid=`cat $pidfile`
|
|
if `kill -CHLD $botpid >/dev/null 2>&1`
|
|
then
|
|
# it's still going -- back out quietly
|
|
exit 0
|
|
fi
|
|
echo ""
|
|
echo "Stale $pidfile file, erasing..."
|
|
rm -f $pidfile
|
|
fi
|
|
|
|
if test -r CANTSTART.$botname
|
|
then
|
|
if test -r $userfile || test -r $userfile~new || test -r $userfile~bak
|
|
then
|
|
echo ""
|
|
echo "Userfile found, removing check file 'CANTSTART.$botname'..."
|
|
rm -f CANTSTART.$botname
|
|
fi
|
|
fi
|
|
|
|
# test if we have run botchk previously and didn't find a userfile
|
|
if test ! -f CANTSTART.$botname
|
|
then
|
|
echo ""
|
|
echo "Couldn't find bot '$botname' running, reloading..."
|
|
echo ""
|
|
# check for userfile and reload bot if found
|
|
if test -r $userfile
|
|
then
|
|
# It's there, load the bot
|
|
./$botscript
|
|
exit 0
|
|
else
|
|
if test -r $userfile~new
|
|
then
|
|
# Bot f*@!ed up while saving the userfile last time. Move it over.
|
|
echo "Userfile missing. Using last saved userfile..."
|
|
mv -f $userfile~new $userfile
|
|
./$botscript
|
|
exit 0
|
|
else
|
|
if test -r $userfile~bak
|
|
then
|
|
# Userfile is missing, use backup userfile.
|
|
echo "Userfile missing. Using backup userfile..."
|
|
cp -f $userfile~bak $userfile
|
|
./$botscript
|
|
exit 0
|
|
else
|
|
# Well, nothing to work with...
|
|
echo "No userfile. Could not reload the bot..."
|
|
echo "no userfile" > CANTSTART.$botname
|
|
exit 1
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
exit 0
|