2016-07-03 14 views
0

Ich habe Capistrano eingerichtet und alles funktioniert einwandfrei, außer Capistrano startet den Passagier nach der Bereitstellung nicht neu. Jede Zeit nach der Bereitstellung muss ich ssh in Server und geben touch tmp/restart.txt innerhalb current directory. Ich habe verschiedene Möglichkeiten ausprobiert, um den Passagier neu zu starten, aber nichts funktioniert für mich.Capistrano startet nginx nicht neu

first attempt:

namespace :deploy do 
    task :restart do 
    on roles(:app) do 
     run "#{try_sudo} touch #{File.join(current_path,'tmp','restart.txt')}" 
    end 
    end 
end 

second attempt

namespace :deploy do 
    task :restart do 
    on roles(:app) do 
     within current_path do 
     execute :touch, 'tmp/restart.txt' 
     end 
    end 
    end 
end 

third attempt

namespace :deploy do 
    task :restart do 
    run "touch #{current_path}/tmp/restart.txt" 
    end 
end 

ich über Code-Schnipsel in Stackoverflow mit ähnlichem Problem Mine gefunden, aber keiner von ihnen den Server neu gestartet wird.

Ich verwende capistrano (3.4.0) mit Rails 4 (nginx + Beifahrer)

Antwort

1

Es könnte sein, dass Ihre deploy:restart Aufgabe nicht ausgeführt wird.

Capistrano 3.1.0 und höher (wie in der Capistrano's CHANGELOG erläutert), führt deploy:restart am Ende cap deploy nicht automatisch aus.

Sie müssen daher ausdrücklich Capistrano sagen, dies zu tun, indem Sie diesen in Ihre deploy.rb:

after 'deploy:publishing', 'deploy:restart' 
+0

Hallo Matt ya mein 'deploy: restart' nicht ausgeführt werden wird. Ich werde Ihren Vorschlag nach der Arbeit versuchen und werde Sie am Abend auf dem Laufenden halten. Danke – Reboot

+0

hat super funktioniert. Vielen Dank. – Reboot

Verwandte Themen