Read more

better rails app restart with the passenger restart-app tool

Kim Klotz
April 28, 2014Software engineer at makandra GmbH

Use capistrano-passenger to restart your Rails app after each deployment.

With this command you can initiate an application restart without touching restart.txt. Unlike touching restart.txt, this tool initiates the restart immediately instead of on the next request. Show snapshot

If you want to use this with capistrano 2.x just replace the touch command:

-    run "touch #{current_path}/tmp/restart.txt"
+    run "passenger-config restart-app --ignore-app-not-running #{deploy_to}"
Illustration web development

Do you need DevOps-experts?

Your development team has a full backlog? No time for infrastructure architecture? Our DevOps team is ready to support you!

  • We build reliable cloud solutions with Infrastructure as code
  • We are experts in security, Linux and databases
  • We support your dev team to perform
Read more Show snapshot

If you are using capistrano 3.x:

 - execute :touch, "#{current_path}/tmp/restart.txt"
 + execute "passenger-config restart-app --ignore-app-not-running #{deploy_to}"

Note: If you using a passenger lower than 5.0.10 you have to use sudo to run this command.

If using it with capistrano you should use passenger >=4.0.41 and the --ignore-app-not-running parameter otherwise your deploy may fail.

When deploying with capistrano it's possible you get this "error" message:

*** [err ::] There are no Phusion Passenger-served applications running whose paths begin with '/var/www/'.
*** [err ::] 

This is just because there were no running passenger instance on the server. It's not a real error.

Posted by Kim Klotz to makandra dev (2014-04-28 20:15)