Capistrano没有重新启动nginx

时间:2016-07-03 16:10:23

标签: ruby-on-rails capistrano

我已经设置了Capistrano并且eveything工作正常,但Capistrano在部署后没有重新启动乘客。部署后的Eveytime我必须ssh到服务器并在touch tmp/restart.txt内键入current directory。我尝试了不同的方式重新启动乘客,但没有什么对我有用。

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

我在stackoverflow中发现上面的代码片段与我的类似问题,但它们都没有重启服务器。

我正在使用capistrano (3.4.0) Rails 4(nginx + passenger)

1 个答案:

答案 0 :(得分:1)

可能是您的deploy:restart任务未被执行。

Capistrano 3.1.0及更高版本(如Capistrano's CHANGELOG中所述)不会在deploy:restart结束时自动执行cap deploy

因此,您必须明确告诉Capistrano这样做,将其添加到deploy.rb

after 'deploy:publishing', 'deploy:restart'