Puma无法找到生产环境配置

Edw*_*all 5 ruby-on-rails puma

我有一个使用puma运行的rails(4.2.4)应用程序.文件说:

如果通过-e--environment标志或RACK_ENV环境变量指定了环境,则默认文件位置为config/puma/environment_name.rb.

这就是我的配置文件所在的位置.

在我的开发环境中,puma启动就好了.这是配置:

workers 1
threads 1, 6
environment 'development'
activate_control_app
Run Code Online (Sandbox Code Playgroud)

然而,我的生产环境存在问题.这是配置:

workers 1
threads 1, 6
environment 'production'
app_dir = File.expand_path('../../..', __FILE__)
bind "unix://#{app_dir}/tmp/sockets/puma.sock"
stdout_redirect "#{app_dir}/log/puma.stdout.log",
                "#{app_dir}/log/puma.stderr.log",
                true
pidfile "#{app_dir}/tmp/pids/puma.pid"
state_path "#{app_dir}/tmp/pids/puma.state"
activate_control_app
daemonize true
Run Code Online (Sandbox Code Playgroud)

这显然更复杂,主要是为了使用套接字,日志记录和守护进程.我知道它的工作原理,因为它可以通过以下命令启动:

$ bundle exec pumactl start
Run Code Online (Sandbox Code Playgroud)

到现在为止还挺好.但是,如果我想像上面的命令一样停止或重启服务器,我收到以下消息:

$ bundle exec pumactl stop
Neither pid nor control url available
Run Code Online (Sandbox Code Playgroud)

如果我指定配置文件的位置,它的工作原理:

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

为什么我需要指定配置文件stop,restart但不是start