Я пытаюсь запустить демон gitlab sidekiq через выскочку. Но, к сожалению, кажется, что работник sidekiq возрождается, так как sidekiq start деамонизирует себя:
Jul 12 17:26:42 git kernel: [370722.042968] init: gitlab-sidekiq main process (28251) terminated with status 1
Jul 12 17:26:42 git kernel: [370722.042997] init: gitlab-sidekiq main process ended, respawning
Есть ли способ «разоблачить» рейк-задачу? (Я знаю этот и этот) Или специально запустите gitlab sidekiq как скрипт-выскочку. Вот моя текущая работа:
description "Sidekiq Background Worker for Gitlab"
# no "start on", we don't want to automatically start
start on runlevel [2345]
stop on runlevel [!2345]
# change to match your deployment user
setuid git
setgid git
env HOME=/home/git
env PATH="/usr/local/rvm/gems/ruby-1.9.3-p429@gitlab/bin:/usr/local/rvm/gems/ruby-1.9.3-p429/bin:/usr/local/rvm/gems/ruby-1.9.3-p429@global/bin:/usr/local/rvm/rubies/ruby-1.9.3-p429/bin:/usr/local/rvm/bin:/usr/bin:/bin"
env GEM_PATH="/usr/local/rvm/gems/ruby-1.9.3-p429@gitlab:/usr/local/rvm/gems/ruby-1.9.3-p429@global"
env RAILS_ENV="production"
respawn
respawn limit 3 30
script
# this script runs in /bin/sh by default
cd /home/git/gitlab
exec bundle exec rake sidekiq:start
end script
Я смог исправить сценарий. Поскольку sidekiq: start деамонизирует себя, мне нужно было поместить его в среду после запуска и после остановки.
# /etc/init/gitlab-sidekiq.conf - Sidekiq config for gitlab
# use the service command:
# sudo service gitlab-sidekiq {start,stop,restart,status}
description "Sidekiq Background Worker for Gitlab"
start on runlevel [2345]
stop on runlevel [!2345]
# change to match your deployment user
setuid git
setgid git
env HOME=/home/git
env PATH="/usr/local/rvm/gems/ruby-1.9.3-p429@gitlab/bin:/usr/local/rvm/gems/ruby-1.9.3-p429/bin:/usr/local/rvm/gems/ruby-1.9.3-p429@global/bin:/usr/local/rvm/rubies/ruby-1.9.3-p429/bin:/usr/local/rvm/bin:/usr/bin:/bin"
env GEM_PATH="/usr/local/rvm/gems/ruby-1.9.3-p429@gitlab:/usr/local/rvm/gems/ruby-1.9.3-p429@global"
env RAILS_ENV="production"
post-start script
cd /home/git/gitlab
exec bundle exec rake sidekiq:start
end script
post-stop script
cd /home/git/gitlab
exec bundle exec rake sidekiq:stop
end script