Iniciando ou reiniciando o Unicorn com o Capistrano 3.x
Eu estou tentando iniciar ou reiniciar o Unicorn quando eu façocap production deploy
com o Capistrano 3.0.1. Eu tenho alguns exemplos que eu comecei a trabalhar com o Capistrano 2.x usando algo como:
namespace :unicorn do
desc "Start unicorn for this application"
task :start do
run "cd #{current_path} && bundle exec unicorn -c /etc/unicorn/myapp.conf.rb -D"
end
end
Mas quando eu tento usarrun
nodeploy.rb
para Capistrano 3.x eu recebo um erro de método indefinido.
Aqui estão algumas das coisas que eu tentei:
# within the :deploy I created a task that I called after :finished
namespace :deploy do
...
task :unicorn do
run "cd #{current_path} && bundle exec unicorn -c /etc/unicorn/myapp.conf.rb -D"
end
after :finished, 'deploy:unicorn'
end
Eu também tentei colocar a corrida dentro da tarefa: restart
namespace :deploy do
desc 'Restart application'
task :restart do
on roles(:app), in: :sequence, wait: 5 do
# Your restart mechanism here, for example:
# execute :touch, release_path.join('tmp/restart.txt')
execute :run, "cd #{current_path} && bundle exec unicorn -c /etc/unicorn/deployrails.conf.rb -D"
end
end
Se eu uso apenasrun "cd ... " then I'll get a
número errado de argumentos (1 para 0) `no shell local.
Eu posso começar o processo de unicórnio comunicorn -c /etc/unicorn/deployrails.conf.rb -D
do meu shell de ssh'd VM.
Eu posso matar o processo mestre Unicorn do shell da VM usando kill USR2, mas mesmo que o processo seja morto, recebo um erro. Eu posso então iniciar o processo novamente usandounicorn -c ...
$ kill USR2 58798
bash: kill: USR2: arguments must be process or job IDs
Eu sou muito novo no Ruby, Rails e Implantação em geral. Eu tenho uma configuração do VirtualBox com Ubuntu, Nginx, RVM e Unicorn, estou muito animado até agora, mas este está realmente mexendo comigo, qualquer conselho ou insight é apreciado.