Запуск или перезапуск Единорога с 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, яЯ до сих пор очень взволнован, но этот действительно напутал со мной, любой совет или понимание приветствуются.