LINUX.ORG.RU
ФорумAdmin

Supervisor vs cron

 ,


1

1

Есть процесс, который при отваливании должен перезапускаться.

Есть 2 решения: 1. Supervisor 2. bash-скрипт для крона, запускающийся каждую минуту; внутри цикл на 5 итераций, который проверяет наличие процесса в ps, затем sleep 10; если процесса не обнаружено, он перезапускается и делается запись в лог.

Какое решение лучше? (хотелось бы получить аргументированный ответ)

Заранее благодарю.

Лучше supervisor, потому что не велосипед. А значит, он

1) стабильнее: лучше оттестирован, чем этот баш-скрипт, и не будет таким хрупким.

2) удобнее: уже есть дока и достаточно фич, чтобы хватило в большинстве случаев, также не нужно писать код самому, а только короткий конфиг.

Если машину будут после тебя админить, то этот самописный скрипт принесет им страдания. Хотя этот пункт весьма относительный и зависит от намерений.

P.S. Если жалко нескольких мегабайт памяти, то точно лучше баш-скрипта заюзать upstart/openrc/systemd (что там стоит в твоей системе).

lu4nik ★★★ ()
Последнее исправление: lu4nik (всего исправлений: 1)

бери супервизор. если понадобится в дальнейшем расширять-изменять, с самописным башеговном замучаешься

anonymous ()
Ответ на: комментарий от lu4nik

На счет хрупкости, мне кажется, чаши весов в пользу баша, так как у супервизора только конфиг в разы превосходит весь башевский код (цикл пока убрал):

a=$( ps -A | grep 'processname' | wc -l ); if [ $a -eq 0 ]; then date >> /tmp/processname.log; service processname start; fi

olegxxx ()
Ответ на: комментарий от olegxxx

Нет, чаши весов тут никак не в сторону баша :) Суть не в размерах конфига, а в том, что твой скрипт хрупкий и рассыпется при разных нештатных ситуациях, при этом нужно еще разбираться, что пошло не так. У супервизора есть лог, который можно почитать и понять, что к чему.

Опять же, это велосипед => это плохо.

lu4nik ★★★ ()
Ответ на: комментарий от anonymous

А что в плане принципа работы супервизора? Он тоже опрашиваешь список процессов через какие-то интервалы или может каким-то образом работает через прерывания?

olegxxx ()
Ответ на: комментарий от zolden

да какая разница, контроля состояния процесса нет, только наличие. контроля запуска нет, нотификации залипшего процесса нет. короче вместо HA - видимость одна

anonymous ()
Ответ на: комментарий от anonymous

Идеальная реализация вотчдога слишком специфична для каждого приложения.
Зачастую нельзя отличить просто загруженный процесс от залипшего.

В общем это всё приумножение сущностей на пустом месте, у ТС явно не ынтерпрайз с болезненным SLA

zolden ★★★★★ ()
Ответ на: комментарий от olegxxx

Косяк, этим скриптом можно запустить >1 процесса.

anc ★★★★★ ()

runit, s6 и аналоги, или inittab на худой конец

annulen ★★★★★ ()
Последнее исправление: annulen (всего исправлений: 1)
Ответ на: комментарий от anonymous

Потестил супервизор на предмет времени срабытывания - поднимает процесс очень быстро, в течении 1 секунды после падения.

olegxxx ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.