5

Capistrano を使用して puma で Rails アプリケーションをデプロイしようとしています。展開の終わりに向かって、実行を試みます

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

で失敗する

undefined method `has_key?' for false:FalseClass. 

の空のファイルを作成しただけですpuma.state。私の質問は、このファイルとは正確には何であり、何が含まれているはずですか?

4

1 に答える 1

9

Pumaには、プロセスのPIDを記録する状態ファイルがあります。初めてデプロイする場合は、.stateファイルを削除して、

cap deploy:cold

または、次のようなものを使用して手動でピューマを開始できます

cap puma:start

これにより、プロセスが開始され、有効な状態ファイルが作成されます。これが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
于 2012-10-24T14:10:04.647 に答える