我需要根据启动应用程序的Web服务器执行某些初始化。是否可以从Rails initializer程序中以编程方式检测它?
我需要根据启动应用程序的Web服务器执行某些初始化。是否可以从Rails initializer程序中以编程方式检测它?
虽然不是很干净,但你可以使用
defined?(::Thin)
defined?(::Unicorn)
defined?(::Passanger)
等等。这对这三个会起作用,你必须检查它是否适用于其他情况。
您可以使用 ps aux 命令来检查进程是否正在运行。
ps aux | grep passenger
ps aux | grep puma
ps aux | grep unicorm
config/application.rb
中添加):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
at_exit
处理程序仅在停止而非重新启动时调用。 - Stas S