From ba46c304bdffdce0b6019a47f6759ce6abbeef90 Mon Sep 17 00:00:00 2001 From: Stefan Ritter Date: Tue, 16 Aug 2011 10:51:41 +0200 Subject: Initial commit --- botchk | 103 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100755 botchk (limited to 'botchk') diff --git a/botchk b/botchk new file mode 100755 index 0000000..e66f94b --- /dev/null +++ b/botchk @@ -0,0 +1,103 @@ +#! /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 -- cgit v1.2.3