3

I want asterisk and mysql to be able to auto-restart if anything were to happen to it, like if it crashed.

I found a guide with what I'm looking for, but it's written assuming that the /etc/inittab is in use. How would this guide translate to an upstart based version?

Here is the guide: How To: Auto-Restart Asterisk

Saurav Kumar
  • 15,174

1 Answers1

2

Just add the respawn-option to your upstart-job (for mysql or asterisk).

You may also additionally add the respawn limit-option:

respawn limit COUNT INTERVAL

"If the job is respawned more than COUNT times in INTERVAL seconds, it will be considered to be having deeper problems and will be stopped."

E.g.

respawn
respawn limit 3 60

So your process will be automatically restartet if it crashes, but if it crashes more than 3 times in 60 seconds, it will not be restarted any more.

Documentation: Upstart-Cookbook

Here is an example upstart-job for asterisk, taken from http://www.digium.com/

# asterisk
#
# Upstart control file for the Asterisk PBX
#
# To install, rename this file to 'asterisk' and copy it to /etc/event.d/
# On Debian: copy to /etc/init/
#
# To start asterisk manually:
#     sudo start asterisk
#
# To stop asterisk manually:
#     sudo stop asterisk
#
# Asterisk is started with an "interactive console", though redirected
# to/from /dev/null . The concept of a main console is bad. OTOH, the main
# process should not detach from the console if we work with upstart and
# alike.
#
# The username 'asterisk' is currently hardwired here, and likewise the
# varrundir.
#

description "Asterisk PBX"
#version     "1.8"

start on runlevel [2345]
stop  on runlevel [!2345]

pre-start script
  # Since Ubuntu clears /var/run on reboot, create this before we try to start
  if [ ! -d /var/run/asterisk ]; then
    mkdir -p asterisk /var/run/asterisk
    chown asterisk: /var/run/asterisk
  fi
end script

respawn
exec /usr/sbin/asterisk -U asterisk -g -f
Clausi
  • 5,057