У нас недавно была похожая потребность. Мы работаем с сервером Ubuntu 14.04 LTS, поэтому создали процесс upstart
, который запускает процесс при загрузке как и перезапускается, если он завершается по любой причине.
Это сработало очень хорошо для нас, включая автоматический перезапуск; наш длительный процесс в конечном итоге теряет соединение MySQL. Сценарий обрабатывает исключение и завершается до того, как процесс upstart
автоматически перезапустит процесс. Мы также добавили сценарий cron
для мониторинга процесса, на случай, если возникнет большая ошибка, из-за которой upstart
прекращает попытки перезапуска; у нас есть отказоустойчивый на случай, если простой перезапуск не исправит предыдущую ошибку.