2012-10-24 1 views
5

J'essaye de déployer mon application rails w/puma en utilisant Capistrano. Vers la fin DELA déploiement, il tente d'exécuterPuma .state file

bundle exec pumactl -S /home/deployer/production/shared/sockets/puma.state restart

qui échoue avec/

undefined method `has_key?' for false:FalseClass. 

J'ai simplement créé un fichier vide pour puma.state. Ma question est de savoir quel est exactement ce dossier et ce qu'il est censé contenir.

Répondre

9

Puma possède un fichier d'état qui enregistre le PID du processus. Si vous déployez pour la première fois, vous devez supprimer le fichier .state, et faire un

cap deploy:cold

ou, vous pouvez commencer manuellement à l'aide pumas quelque chose comme

cap puma:start

Cette volonté démarrez le processus et créez un fichier d'état valide. Voici ma commande de démarrage puma à capistrano:

namespace :puma do 

    desc "Start the application" 
    task :start, :roles => :app, :except => { :no_release => true } do 
    run "cd #{current_path} && RAILS_ENV=#{rails_env} bundle exec puma -t 8:32 -b 'unix://#{shared_path}/sockets/puma.sock' -S #{shared_path}/sockets/puma.state --control 'unix://#{shared_path}/sockets/pumactl.sock' >> #{shared_path}/log/puma-#{rails_env}.log 2>&1 &", :pty => false 
    end 
    after "deploy:start", "puma:start" 
end