Я пытаюсь запустить или перезапустить 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, я получаю ошибку метода undefined.
Вот несколько вещей, которые я пробовал:
# 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.
Я могу убить главный процесс Unicorn из оболочки VM, используя 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, я до сих пор очень рад, но этот действительно возится со мной, любые советы или проницательность оценены.