2012-10-24 31 views
5

Tôi đang cố triển khai ứng dụng đường ray của mình bằng cách sử dụng Capistrano. Đến cuối ofthe triển khai nó cố gắng chạyPuma .state file

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

mà không w/

undefined method `has_key?' for false:FalseClass. 

Tôi đã chỉ đơn giản là tạo ra một tập tin rỗng cho puma.state. Câu hỏi của tôi là những gì chính xác là tập tin này và những gì được cho là trong đó?

Trả lời

9

Puma có tệp trạng thái ghi lại PID của quy trình. Nếu bạn đang triển khai lần đầu tiên, bạn nên xóa file .state, và làm một

cap deploy:cold

hay, bạn có thể bắt đầu puma bằng tay sử dụng một cái gì đó giống như

cap puma:start

chí này bắt đầu quá trình và tạo một tệp trạng thái hợp lệ. Đây là lệnh bắt đầu bằng puma của tôi bằng chữ cái 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 
Các vấn đề liên quan