У меня есть программа golang, которую я хочу перезапустить после ее завершения в окне Debian Squeeze. Все дело в том, чтобы обслуживать HTTP за настройкой Apache 2 mod_proxy. Я не ожидаю, что процесс потерпит неудачу, но я хотел бы иметь некоторую страховку от этого.
В Ubuntu я бы использовал upstart, чтобы поддержать процесс. Debian не нравится Upstart из того, что я понимаю, поскольку это замена инициализации.
Есть ли альтернатива, которая перезапускает один или несколько процессов после их завершения, которая работает на Squeeze и хорошо играет с init?
debian
init.d
debian-squeeze
Исключен
источник
источник
Ответы:
Лучший способ сделать это -
daemontools
. Они позволяют вам отслеживать и возрождать процессы.Смотрите документацию на их сайте: http://cr.yp.to/daemontools.html
источник
supervise - это легкая и эффективная альтернатива. Под Debian он упакован в daemontools . Вы также можете прочитать этот связанный вопрос , в котором перечислены некоторые критические замечания по надзору и упоминается перезапуск в качестве другой возможности.
Наконец, если вы хотите что-то невероятно простое в настройке, у меня был большой успех с monit . Он также упакован в Debian .
источник
Контроль или мониторинг хороши для поддержки одного процесса. Поскольку вы просите поддерживать "один или несколько" процессов, я бы хотел включить супервизор . Это, конечно, излишне для управления одним процессом, но если вам нужно отслеживать несколько процессов, это может быть вашим делом.
источник
Один из вариантов - использовать
/etc/inittab
вместо того, чтобы вводить свой скрипт/etc/init.d/
.Вы просто добавляете запись в следующем формате:
<jobname>:<runlevels>:respawn:<command>
К сожалению, это означает, что вы не можете использовать обычные команды инициализации start / stop / restart, но это должно гарантировать, что ваш скрипт работает все время.
источник
Кросс-дистрибутивный способ обработки перезапуска процесса - cron и простой скрипт. Вы можете увидеть рецензию здесь. Как сохранить работу в Linux
Сценарий выглядит примерно так
источник