Execute gitlab sidekiq (tarefa rake) com upstart

2

Estou tentando iniciar o daemon sidekiq do gitlab por meio do upstart. Mas, infelizmente, parece que o trabalhador do sidekiq está recuperado desde que o sidekiq começa a se harmonizar:

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

Existe uma maneira de "undemonise" uma tarefa rake? (Estou ciente de que isto e this ) Ou execute especificamente gitlab sidekiq como script upstart. Aqui está meu trabalho atual até agora:

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
    
por Pascal 12.07.2013 / 17:32

1 resposta

2

Consegui corrigir o script. Como o sidekiq: start deamoniza a si mesmo, eu precisava colocá-lo em um ambiente de pós-início e pós-parada.

# /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
    
por 18.07.2013 / 10:17