Есть ли у кого-нибудь какие-либо предложения о том, как я могу добиться скользящего перезапуска группы процессов с помощью monit?Повторный запуск группы процессов в monit
Спасибо заранее, fturtle
Есть ли у кого-нибудь какие-либо предложения о том, как я могу добиться скользящего перезапуска группы процессов с помощью monit?Повторный запуск группы процессов в monit
Спасибо заранее, fturtle
Я не уверен, на каком сервере вы говорите. Но я могу предоставить вам пример для тонких, который поддерживает скользящий перезапуск. (Опция onebyone: true
)
Так Monit вы можете использовать что-то вроде,
if ... then exec '/path/to/thin_restart.sh'
thin_restart.sh
И было бы что-то подобное,
source /path/to/scripts/rvm
rvm use [email protected]_ruby
thin -C thin.yml restart
И содержание thin.yml будет выглядеть,
port: 1337
pid: tmp/pids/thin.pid
rackup: /path/to/config.ru
daemonize: true
servers: 2
onebyone: true
Есть o Ther способы тонкой настройки перезапуска на основе pid. Вы можете контролировать файлы с помощью pids и перезапускать только тонкий процесс на основе условий.
например.
check process app-1337
with pid /path/to/app.1337.pid
start = 'thin -d -p 1337 start'
stop = 'thin -d -p 1337 -P /path/to/thin.1337.pid stop'
if cpu usage > 50% then restart
check process app-1338
with pid /path/to/app.1338.pid
start = 'thin -d -p 1338 start'
stop = 'thin -d -p 1338 -P /path/to/thin.1338.pid stop'
if cpu usage > 50% then restart
Другой способ - использовать группы, которые обеспечивают monit.
Расширение над примером.
check process app-1337
with pid /path/to/app.1337.pid
group thin
group thin-odd
start = 'thin -d -p 1337 start'
stop = 'thin -d -p 1337 -P /path/to/thin.1337.pid stop'
if cpu usage > 50% then restart
check process app-1338
with pid /path/to/app.1338.pid
group thin
group thin-even
start = 'thin -d -p 1338 start'
stop = 'thin -d -p 1338 -P /path/to/thin.1338.pid stop'
if cpu usage > 50% then restart
check process app-1337
with pid /path/to/app.1339.pid
group thin
group thin-odd
start = 'thin -d -p 1339 start'
stop = 'thin -d -p 1339 -P /path/to/thin.1339.pid stop'
if cpu usage > 50% then restart
check process app-1340
with pid /path/to/app.1340.pid
group thin
group thin-even
start = 'thin -d -p 1340 start'
stop = 'thin -d -p 1340 -P /path/to/thin.1340.pid stop'
if cpu usage > 50% then restart
Итак, теперь вы можете сделать следующее, чтобы перезапустить все:
monit -g thin restart
или достичь своего рода подвижного перезапуска, перезапустить нечетные, то даже. Чтобы перезапустить только нечетные:
monit -g thin-odd restart
и перезапустить даже:
monit -g thin-even restart