如何在 运行 时检查我的 Rails 应用是 运行 开发环境还是生产环境

How to check whether my Rails app is running with a dev or production environment while running

我是 运行 Centos 6.5 服务器上的一个 rails 应用程序,带有 Passenger 和 Nginx。如何在不停止它的情况下检查它 运行 所处的环境?

您的环境位于 Rails.env

Loading development environment (Rails 4.2.3)
2.1.2 :001 > Rails.env
 => "development" 

您还可以在条件句的问题格式中使用环境:

2.1.2 :002 > Rails.env.production?
 => false 
2.1.2 :003 > Rails.env.pickle?
 => false 
2.1.2 :004 > Rails.env.development?
 => true 

警告词 - 如果您想在代码中编写一些程序来检查环境。

使用passenger-status命令。例如,这显示乘客正在 运行 宁 production 环境(Application groups 标题下的第一行):

(production-web) ubuntu@ip-10-0-3-146 ~% sudo passenger-status                                                              
Version : 5.0.15
Date    : 2015-08-20 17:40:24 +0000
Instance: lNNFwV1C (Apache/2.4.7 (Ubuntu) Phusion_Passenger/5.0.15)

----------- General information -----------
Max pool size : 12
App groups    : 1
Processes     : 6
Requests in top-level queue : 0

----------- Application groups -----------
/home/my-app/deploy/current (production):
  App root: /home/my-app/deploy/current
  Requests in queue: 0
  * PID: 11123   Sessions: 0       Processed: 12997   Uptime: 21h 14m 2s
    CPU: 0%      Memory  : 190M    Last used: 1s ago
  * PID: 11130   Sessions: 0       Processed: 140     Uptime: 21h 14m 2s
    CPU: 0%      Memory  : 153M    Last used: 9m 32s a
  * PID: 11137   Sessions: 0       Processed: 15      Uptime: 21h 14m 2s
    CPU: 0%      Memory  : 103M    Last used: 57m 54s
  * PID: 11146   Sessions: 0       Processed: 6       Uptime: 21h 14m 2s
    CPU: 0%      Memory  : 101M    Last used: 7h 47m 4
  * PID: 11153   Sessions: 0       Processed: 5       Uptime: 21h 14m 1s
    CPU: 0%      Memory  : 100M    Last used: 8h 42m 3
  * PID: 11160   Sessions: 0       Processed: 2       Uptime: 21h 14m 1s
    CPU: 0%      Memory  : 81M     Last used: 8h 42m 3

rails 控制台不可靠 - 它只会告诉您控制台 运行ning 在什么环境下。在不同的环境中乘客可能被配置为 运行。