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