Kyl*_*cot 5 ruby ruby-on-rails ruby-on-rails-3 puma
我正在尝试使用Capistrano部署我的rails应用程序w/puma.在部署结束时,它会尝试运行
bundle exec pumactl -S /home/deployer/production/shared/sockets/puma.state restart
失败w/
undefined method `has_key?' for false:FalseClass.
Run Code Online (Sandbox Code Playgroud)
我只是创建了一个空文件puma.state.我的问题是这个文件到底是什么以及它应该是什么?
Puma有一个状态文件,记录进程的PID.如果您是第一次部署,则应删除.state文件,然后执行
cap deploy:cold
或者,您可以使用类似的东西手动启动美洲狮
cap puma:start
这将启动该过程并创建一个有效的状态文件.这是我在capistrano的puma start命令:
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
Run Code Online (Sandbox Code Playgroud)