Witam!
Mam konto shellowe i chciałbym napisac skrypt który będzie uruchamiac proces np po resecie serwera lub po wyłączeniu procesu. Proces ten zapisuje pid do pliku przy jego odpalaniu
więc. Odrazu mówie ze nie mam dostępu do autostartu.
tutaj dodaje skrypt który znalazłem i który działa z eggdropem
####################################################
#! /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
##################################################
nie znam się zbytnio na skryptach .. ale poprostu nie wiem od czego zacząć .. czy skrypt ma sprawdzac przez ps czy pid który jest zapisany w pliku jest taki sam w uruchomionych procesach ?? i czy wogóle istnieje?? czy na tym mam bazować ?
skrypt miałby uruchamiac proces gdyby pid nie zgadzał sie z pid zapisanym w pliku
a gdyby sie zgadzał. skrypt by nic nie zrobił
skrypt miałby by byc uruchamiany przez crontab
i czy warto robic to w bashu?/ moze zacząć kombinowac w perlu?