#! /bin/sh # # new botchk (for eggdrop 1.1+) # # $Id: botchk,v 1.4 1999/12/21 17:35:08 fabian 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/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/botchk >/dev/null 2>&1 # # change this to the directory you run your bot from: botdir="/home/mydir/mybot" # change this to the name of your bot's script in that directory: botscript="mybot" # change this to the nickname of your bot (capitalization COUNTS) botname="Doofy" # change this to the name of your bot's userfile (capitalization COUNTS) userfile="Doofy.user" ########## you probably don't need to change anything below here ########## cd $botdir # is there a pid file? if test -r pid.$botname then # there is a pid file -- is it current? botpid=`cat pid.$botname` if `kill -CHLD $botpid >/dev/null 2>&1` then # it's still going -- back out quietly exit 0 fi echo "" echo "Stale pid.$botname file, erasing..." rm -f pid.$botname 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