[CentOS] xServes are dead ;-( / SAN Question

Fri Nov 12 16:07:18 UTC 2010
John Doe <jdmls at yahoo.com>

From: Nicolas Ross <rossnick-lists at cybercat.ca>

> >> >      while true;  do
> >> >            your stuff
> >> >            sleep 60
> >> >       done;
> >>
> >> Sure, but you also need to start the loop and make  sure it doesn't die.
> > Put in /etc/inittab
> >   ms:2345:respawn:/path/to/my/loop_script
> > (where "ms" is  unique).
> > If the loop dies then init will restart it for  you.
> I tought of that, and I will be needing something like this, since I  have 
> some services that need to be restarted in the event of them dying or  being 
> killed.
> But I'm not that much confortable scripting a  modification of the initab to 
> activate / deactivate services on a  server-by-server basis. 

I usually use a lock file and put an entry in cron (like try to relaunch the 
scrip every xxx in case it crashed).
But that means taking care of removing the leftover lock file if the script 
crashed...
Something like:

if [ -f "$LOCK_FILE" ]; then
  PID=`cat "$LOCK_FILE"`
  if [ ! -d "/proc/$PID" ]; then
    rm -f "$LOCK_FILE"
    if [ -f "$STOP_FILE" ]; then rm -f "$STOP_FILE"; fi
    exit 1
  fi
  exit 1
else
  echo $$ > "$LOCK_FILE"
fi  

while [ ! -f "$STOP_FILE" ]; do
  your stuff
  sleep 60
done

rm -f "$STOP_FILE"
rm -f "$LOCK_FILE"

JD