Я хочу, чтобы asterisk
и mysql
могли автоматически перезапускаться, если с ним что-нибудь случится, например, если он потерпит крах.
Я нашел руководство с тем, что я ищу, но оно написано при условии, что /etc/inittab
используется. Как это руководство перевести на версию, основанную на выскочке?
Вот руководство: Как выполнить автоматический перезапуск Asterisk
Просто добавьте опцию respawn
в задание upstart (для mysql или звездочки).
Вы также можете дополнительно добавить опцию respawn limit
:
respawn limit COUNT INTERVAL
«Если задание вызывается больше, чем COUNT раз в ИНТЕРВАЛ-секундах, это будет считаться имеющим более глубокие проблемы и будет остановлено. "
Например
respawn
respawn limit 3 60
Таким образом, ваш процесс будет автоматически перезапущен в случае сбоя, но если сбой произойдет более 3 раз за 60 секунд, он больше не будет перезапущен.
Документация: Upstart-Cookbook
Вот пример работы upstart для звездочки, взятой из 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