ruby-on-rails 如何检测Rails应用程序使用的服务器(瘦服务器、puma服务器、乘客服务器...)?

t3irkdon  于 2023-03-04  发布在  Ruby
关注(0)|答案(3)|浏览(159)

我需要根据用于启动应用程序的web服务器执行特定的初始化。是否可以通过编程从rails初始化程序中检测到它?

pengsaosao

pengsaosao1#

虽然不是很干净,但你可以用

defined?(::Thin) 
defined?(::Unicorn)
defined?(::Passanger)

等等。这对这三个都有效,你必须检查它对其他人是否有效。

djp7away

djp7away2#

下面是一种很有技巧的方法(在config/application.rb add中):

module Rails
  class Server < ::Rack::Server
    alias_method :old_start, :start
    def start
      puts server.name # or set an ENV variable
      old_start
    end
  end
end
w8ntj3qf

w8ntj3qf3#

您可以使用ps aux检查进程是否正在运行

ps aux | grep passenger
ps aux | grep puma
ps aux | grep unicorm

相关问题