Как заставить Monit запускать Sidekiq?

Я спрашиваю об этом, хотя технически знаю, как это сделать. В конце концов, я установил эту среду на 3 других серверах. Тем не менее, он невероятно, невероятно упрям ​​в этой новой установке RHEL6.

Вот запись из моего файла /etc/monit.d/sidekiq_uploader.monitrc:

# sidekiq worker 0
check process sidekiq_uploader_0
  with pidfile /var/run/sidekiq/uploader/sidekiq_0.pid
  start program = "/home/deploy/scripts/sidekiq uploader start production 0" with timeout 180 seconds
  stop program = "/home/deploy/scripts/sidekiq uploader stop production 0" with timeout 180 seconds
  group uploader_sidekiq

Довольно просто, я прав? Не работает. Создает файл pid, создает файл журнала в каталоге log проекта Rails, затем ничего.

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

В /var/monit/log снова и снова и снова:

[EDT May 18 12:37:29] info     : Awakened by User defined signal 1
[EDT May 18 12:37:29] info     : 'sidekiq_uploader_0' start: /home/deploy/scripts/sidekiq
[EDT May 18 12:37:29] info     : 'sidekiq_uploader_0' start action done
[EDT May 18 12:37:59] error    : 'sidekiq_uploader_0' process is not running
[EDT May 18 12:37:59] info     : 'sidekiq_uploader_0' trying to restart

Вот единственная запись в журнале Rails:

# Logfile created on 2016-05-18 12:37:21 -0400 by logger.rb/47272

По крайней мере не полезно. Когда я просто запускаю команду запуска в командной строке:

Журнал создается в каталоге Rails /log, И создается файл Rails production.log. Затем файл журнала sidekiq содержит:

# Logfile created on 2016-05-18 12:37:21 -0400 by logger.rb/47272
2016-05-18T17:45:13.303Z 24843 TID-oxfx4u7ko INFO: Booting Sidekiq 4.0.2 with redis options {:url=>"redis://redis:6379", :namespace=>"uploader"}
2016-05-18T17:45:14.061Z 24843 TID-oxfx4u7ko INFO: Running in ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-linux]
2016-05-18T17:45:14.061Z 24843 TID-oxfx4u7ko INFO: Sidekiq Pro 3.0.1 / Sidekiq Enterprise 1.1.0, commercially licensed.
2016-05-18T17:45:14.064Z 24843 TID-oxfx4u7ko INFO: Starting processing, hit Ctrl-C to stop
2016-05-18T17:45:14.126Z 24843 TID-oxfxm4ix8 INFO: Gained leadership of the cluster

person AKWF    schedule 18.05.2016    source источник
comment
Почему вы используете monit вместо Upstart?   -  person Mike Perham    schedule 18.05.2016
comment
Только потому, что это то, что я знаю, и мне это удавалось в прошлом.   -  person AKWF    schedule 18.05.2016
comment
Лично я не фанат monit. Вы можете использовать поддержку нескольких процессов в Sidekiq Enterprise для мониторинга памяти и перезапуска раздутых дочерних элементов: github.com/mperham/sidekiq/wiki/ См. также мой проект Inspeqtor.   -  person Mike Perham    schedule 19.05.2016
comment
Спасибо, Майк, похоже, мне нужно обновить версию Enterprise. Перезапуск раздутых детей пригодится большое время в нашей установке.   -  person AKWF    schedule 20.05.2016


Ответы (1)


По какой-то неизвестной причине мне пришлось изменить команды в файле конфигурации Monit на:

start program = "/bin/bash -c '/home/deploy/scripts/sidekiq uploader start production 0 &>/home/deploy/sidekiq_0.out'" with timeout 180 seconds
stop program = "/bin/bash -c '/home/deploy/scripts/sidekiq uploader stop production 0'" with timeout 180 seconds

Я понятия не имею, почему, но теперь это работает.

person AKWF    schedule 18.05.2016