in reply to Process Reliablity

The suggestion about using a wrapper script to simply restart the program when it crashes is a good one, but I'd suggest you do two more things. Check the return value of the script, so that if it exits normally, (e.g. on a change of run level) the script will allow it to do so.

Secondly, be sure to log all the starts and restarts or at least notify somebody about them, so that you always have a good idea of what is going on. Otherwise, you are likely to forget about it after it "just works" (i do this all the time too, its an easy habit to get into) and never be aware of what is going on.

Good luck,
Mark Logan

Replies are listed 'Best First'.
RE: Re: Process reliability
by atl (Pilgrim) on Jul 20, 2000 at 17:51 UTC
    Good point! Both of them. That would make a not-so-quick but better hack. Append a timestamp and a start note / end note with exit code to a log file, to have a history. You might also send an email in case of a crash. Let's see ...

    #!/bin/sh while true do start_your_program RC=$? # return code if [ $RC -gt 0 ] then date >> /var/log/your_log_file echo "ABNORMAL program termination, rc = $RC" >> /var/log/your_log +_file echo "terminated at `date`, restarting | mail -s "Problem with zzz +" root sleep xxx else date >> /var/log/your_log_file echo "Normal program termination, rc = $RC" >> /var/log/your_log_f +ile sleep yyy fi done
    You can do further checking on the exit code as Mark suggested and act diffently according to the exit code (see case statement in your shell manual).

    Andreas