Po pracy na mój własny monit i konfiguracja sidekiq, mogę podzielić się tym, co sprawdziło się przy uruchomieniu ubuntu.
Po pierwsze, istnieje skrypt upstart sidekiq dla Ubuntu, jeśli korzystasz z tej dystrybucji. Istnieją skrypty do sidekiq i do zarządzania pracownikami: https://github.com/mperham/sidekiq/tree/master/examples/upstart/manage-one
Wpadłem na kilka błędów z tym domyślnym skryptem upstart, ponieważ używam rvm. Sprawdzanie /var/logs/upstart/sidekiq-0.log rzuca trochę światła na problemy. Ta linia:
exec bin/sidekiq -i ${index} -e production -C config/sidekiq.yml -P tmp/pids/sidekiq-${index}.pid
musiała zostać zmieniona na exec bundle exec sidekiq
+ opcje
Następnie dla utrzymując wszystko w zgodzie z moim RVM zainstalować, zmieniłem następujące:
#source $HOME/.rvm/scripts/rvm
source /usr/local/rvm/scripts/rvm
W/etc/monit/monitrc Odnoszę się do skryptów Upstart i mam:
# sidekiq
check process sidekiq
with pidfile /var/www/apps/myapp/current/tmp/pids/sidekiq-0.pid
start program = "/usr/bin/sudo start sidekiq index=0"
stop program = "/usr/bin/sudo stop sidekiq index=0"
if totalmem is greater than 500 MB for 2 cycles then restart # eating up memory?
if 3 restarts within 5 cycles then timeout
Spróbuj napisać pełną ścieżkę do Bundler, jak '/usr/local/lib/ruby/gems/1.9/ gems/bundler-1.2.3/bin/bundle' lub nawet przedrostek tej ścieżki ze ścieżką do ruby. Użyj polecenia 'which bundle', aby znaleźć pełną ścieżkę. – taro