Puma - Linux上的Rails //当进程死亡时重启

Ben*_*Ben 3 daemon upstart puma ruby-on-rails-4

在rails应用程序上使用puma; 它有时会死于没有任何关节的原因; 部署时经常死亡(停止后不重启)

什么是一个很好的方法来监控进程是否死亡,并正确地重新启动它?在rails应用程序中调用; 我有一个方法可以为任何应用程序定义它.我没有找到任何可行的方法来做到这一点(看看systemd,其他Linux守护进程......没有成功)

谢谢,如有任何反馈

zis*_*she 11

你可以puma control用来启动/停止puma服务器.如果你知道放置puma.pid文件的位置(通常是Mac "#{Dir.pwd}/tmp/pids/puma.pid"),你可以这样做:

bundle exec pumactl -P path/puma.pid stop
Run Code Online (Sandbox Code Playgroud)

要设置pid文件路径或其他选项(如daemonizing),您可以创建puma配置.你可以在这里找到一个例子.然后使用配置文件启动和停止服务器:

bundle exec pumactl -F config/puma.rb start
Run Code Online (Sandbox Code Playgroud)

您还可以通过以下方式重新启动并检查状态:

bundle exec pumactl -F config/puma.rb restart
bundle exec pumactl -F config/puma.rb status
Run Code Online (Sandbox Code Playgroud)