Запуск или перезапуск Единорога с Capistrano 3.x

я пытаюсь запустить или перезапустить Unicorn, когда яcap production deploy с Capistrano 3.0.1. У меня есть несколько примеров, которые я получил, работая с Capistrano 2.x, используя что-то вроде:

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

Но когда я пытаюсь использоватьrun вdeploy.rb для Capistrano 3.x я получаю неопределенную ошибку метода.

Вот несколько вещей, которые я попробовал:

# 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

Я также попытался поместить запуск в задачу: 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    

Если я использую толькоrun "cd ... " then I'll get aневерное количество аргументов (1 для 0) `в локальной оболочке.

Я могу начать процесс единорога сunicorn -c /etc/unicorn/deployrails.conf.rb -D из моего ssh 'd VM shell.

Я могу уничтожить основной процесс Unicorn из оболочки виртуальной машины, используя kill USR2, но даже если процесс уничтожен, я получаю сообщение об ошибке. Затем я могу начать процесс снова, используяunicorn -c ...

$ kill USR2 58798
bash: kill: USR2: arguments must be process or job IDs

Я очень новичок в Ruby, Rails и Deployment в целом. У меня есть установка VirtualBox с Ubuntu, Nginx, RVM и Unicorn, яЯ до сих пор очень взволнован, но этот действительно напутал со мной, любой совет или понимание приветствуются.

Ответы на вопрос(4)

Ваш ответ на вопрос