Autorestart With Upstart

What is upstart?
From the official description:


 * Upstart is an event-based replacement for the /sbin/init daemon which handles starting of tasks and services during boot, stopping them during shutdown and supervising them while the system is running.


 * It was originally developed for the Ubuntu distribution, but is intended to be suitable for deployment in all Linux distributions as a replacement for the venerable System-V init.

Monitoring/restarting OpenSim with upstart
The following assumes you're runnig OpenSim within GNU screen, so one can detach and reattach to the console. But that's not required to use upstart.

Create a file, /etc/event.d/opensim, containing the following:

start on runlevel [!06] stop on runlevel [06] exec /bin/su - opensim -c '/usr/bin/screen -h 0 -D -m -c /var/run/opensim/opensim.screenrc' respawn # give up if I respawn 3 times in 60 seconds... respawn limit 3 60

In /var/run/opensim/opensim.screenrc is the following:

chdir /usr/lib/opensim/bin screen -h 500 -t opensim mono OpenSim.exe -gui=true

Then, to start or stop OpenSim, just use:


 * 1) start opensim

or:


 * 1) stop opensim

If OpenSim dies on its own, upstart will automatically restart it.