2016-07-03 2 views
0

У меня есть настройка Capistrano и eveything работает нормально, за исключением того, что Capistrano не перезапускает пассажира после развертывания. Eveytime после развертывания я должен ssh на сервер и введите touch tmp/restart.txt внутри current directory. Я пробовал разные способы перезагрузки пассажира, но для меня ничего не работает.Capistrano не перезагружается nginx

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 + пассажир)

ответ

1

Это может быть, что ваша deploy:restart задача не выполняется.

Capistrano 3.1.0 и выше (как поясняется в Capistrano's CHANGELOG), автоматически не выполняет deploy:restart в конце cap deploy.

Вы должны поэтому явно сказать Capistrano, чтобы сделать это, добавив это к вашему deploy.rb:

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

Привет Matt я мой 'Deploy: restart' не выполняется. Я собираюсь попробовать ваше предложение после работы и буду поддерживать вас вечером. Спасибо – Reboot

+0

работал отлично. Благодарю. – Reboot

 Смежные вопросы

  • Нет связанных вопросов^_^