2012-10-24 9 views
5

Ich versuche, meine Rails-Anwendung w/Puma mit Capistrano zu implementieren. Gegen Das Ende des Entfaltungs versucht esPuma .State-Datei

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

, die w/

undefined method `has_key?' for false:FalseClass. 

ich für puma.state haben einfach eine leere Datei nicht ausgeführt werden erstellt. Meine Frage ist, was genau ist diese Datei und was soll darin sein?

Antwort

9

Puma verfügt über eine Statusdatei, die die PID des Prozesses aufzeichnet. Wenn Sie zum ersten Mal bereitstellen, sollten Sie die .state Datei löschen, und führen Sie ein

cap deploy:cold

oder können Sie puma manuell starten etwas wie

cap puma:start

Dies wird unter Verwendung von Starten Sie den Prozess und erstellen Sie eine gültige Statusdatei. Hier ist mein Puma Startbefehl in 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