2012-10-24 3 views
5

Capistrano를 사용하여 내 레일 애플리케이션을 푸마와 함께 배포하려고합니다. 배포 적힌 끝으로이 푸마 상태 파일

undefined method `has_key?' for false:FalseClass. 

는 단순히 puma.state에 대한 빈 파일을 생성 한 승 실패

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

를/실행하려고 시도합니다. 내 질문은이 파일이 정확히 무엇이고 파일에 무엇이 있어야 하는가?

답변

9

푸마에는 프로세스의 PID를 기록하는 상태 파일이 있습니다. 처음 배포하는 경우, 당신은 수동

cap puma:start

이 의지 같은 것을 사용 퓨마를 시작할 수 있으며, .STATE 파일을 삭제하고,

cap deploy:cold

을하거나한다 프로세스를 시작하고 유효한 상태 파일을 작성하십시오. 카피 스트라 노에서 내 퓨마 시작 명령은 다음과 같습니다.

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