cap deployでrestart application
capistranoでdeployするところまではできていたものの、アプリケーションの再読み込みについて調べるのが面倒で、ついついapacheをrestartしてました。
mephistoもpassengerで動かしているので、apacheを再起動せずに何とかならないものかと、調べてみました。
passengerのドキュメントを見ると、deploy後のアプリケーションのrestartについて以下のように記述されています。
Deploying a new version of a Ruby on Rails application is as simple as re-uploading the application files, and restarting the application. There are two ways to restart the application: 1.By restarting Apache. 2.By creating or modifying the file tmp/restart.txt in the Rails application’s root folder. Phusion Passenger will automatically restart the application during the next request.
ということで、deploy.rbに以下の記述を追加。
namespace :shrimp do task :restart do run "touch #{current_path}/tmp/restart.txt" end end after :deploy, "shrimp:restart"
以降、cap deployすると自動的に更新後のアプリケーションが再読み込みされます。