2016-05-18 6 views
0

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

Вот запись из моего /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, создает файл журнала в каталоге Rails log, а затем ничего.

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

В /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 
+0

Почему вы используете monit вместо Upstart? –

+0

Только потому, что это то, что я знаю, и мне это удавалось в прошлом. – AKWF

+1

Я не поклонник monit лично. Вы можете использовать поддержку нескольких процессов в Sidekiq Enterprise для мониторинга памяти и перезапуска раздутых детей: https://github.com/mperham/sidekiq/wiki/Ent-Multi-Process#memory-monitoring См. Также мой проект Inspeqtor. –

ответ

0

По какой-то неизвестной причине, я должен был изменить команды в файле конфигурации 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 

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