Starten oder Neustarten von Unicorn mit Capistrano 3.x
Ich versuche Unicorn zu starten oder neu zu starten, wenn ich das tuecap production deploy
mit Capistrano 3.0.1. Ich habe einige Beispiele, bei denen ich mit Capistrano 2.x gearbeitet habe:
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
Aber wenn ich es versuche und benutzerun
in demdeploy.rb
Für Capistrano 3.x erhalte ich einen undefinierten Methodenfehler.
Hier sind ein paar Dinge, die ich ausprobiert habe:
# 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
Ich habe auch versucht, den Lauf innerhalb der Aufgabe: restart zu setzen
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
Wenn ich nur benutzerun "cd ... " then I'll get a
falsche Anzahl von Argumenten (1 für 0) `in der lokalen Shell.
Ich kann den Einhornprozess mit startenunicorn -c /etc/unicorn/deployrails.conf.rb -D
von meiner ssh'd VM Shell.
Ich kann den Master-Unicorn-Prozess über die VM-Shell mit kill USR2 beenden, aber obwohl der Prozess beendet wird, wird eine Fehlermeldung angezeigt. Ich kann den Vorgang dann mit erneut startenunicorn -c ...
$ kill USR2 58798
bash: kill: USR2: arguments must be process or job IDs
Ich bin sehr neu in Ruby, Rails und Deployment im Allgemeinen. Ich habe ein VirtualBox-Setup mit Ubuntu, Nginx, RVM und Unicorn. Bis jetzt bin ich ziemlich aufgeregt, aber dieses Setup ist wirklich faul, jeder Rat oder jede Einsicht ist willkommen.