summaryrefslogtreecommitdiffstats
path: root/botchk
diff options
context:
space:
mode:
authorStefan Ritter <xeno@thehappy.de>2011-08-16 10:51:41 +0200
committerStefan Ritter <xeno@thehappy.de>2011-08-16 10:51:41 +0200
commitba46c304bdffdce0b6019a47f6759ce6abbeef90 (patch)
tree40a5b204637cb65c5bb91bd4f26a248ea498e019 /botchk
Initial commit
Diffstat (limited to 'botchk')
-rwxr-xr-xbotchk103
1 files changed, 103 insertions, 0 deletions
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