为什么 运行 `rails s` 作为守护进程没有启动 Puma?
How come running `rails s` as daemon doesn't start Puma?
当我 运行 rails s -e production -p 9292
(正常情况)时,我得到:
=> Booting Puma
=> Rails 5.1.1 application starting in production on http://0.0.0.0:9292
=> Run `rails server -h` for more startup options
Puma starting in single mode...
* Version 3.8.2 (ruby 2.3.0-p0), codename: Sassy Salamander
* Min threads: 5, max threads: 5
* Environment: production
* Listening on tcp://0.0.0.0:9292
Use Ctrl-C to stop
当我 运行 rails s -d -e production -p 9292
(作为守护进程)时,我得到:
=> Booting Puma
=> Rails 5.1.1 application starting in production on http://0.0.0.0:9292
=> Run `rails server -h` for more startup options
就是这样。我需要 运行 bundle exec puma -e production -p 9292 --pidfile tmp/pids/puma.pid -d
才能获得第二部分:
Puma starting in single mode...
...
另外,我的 Puma 日志在哪里?我在 log
文件夹中看到空白 production.log
,没有其他日志文件。
背景上下文:当我 运行 curl 0.0.0.0:9292
在 运行 将 rails
和 puma
作为守护进程后,我得到错误 An unhandled lowlevel error occurred. The application logs may have details.
啊,Puma 似乎只关心与 capistrano 一起使用时的 RAILS_ENV
。您可以使用 RACK_ENV
或 -e 代替吗?这应该有效:
RACK_ENV=production bundle exec puma -p 3000
或
bundle exec puma -p 3000 -e production
参见 here
希望有所帮助
rails s -e production -p 9292 -d
杀死服务器
杀死cat tmp/pids/server.pid
rails s -e 生产 -p 9292 -d
对于低于 5 的 Puma 版本,我们可以使用 -d
选项在后台启动。
puma -e production -p 4132 -C config/puma.rb -d
但是Puma gem在5以上的版本中不支持-d
选项
In version 5.0 the authors of the popular Ruby web server Puma chose
to remove the daemonization support from Puma, because the code wasn't
wall maintained, and because other and perhaps better options exist
(such as systemd, etc), not to mention many people have switched to
Kubernetes and Docker, where you want to start all servers on the
foreground
您可以使用此 gem 在后台启动。
当我 运行 rails s -e production -p 9292
(正常情况)时,我得到:
=> Booting Puma
=> Rails 5.1.1 application starting in production on http://0.0.0.0:9292
=> Run `rails server -h` for more startup options
Puma starting in single mode...
* Version 3.8.2 (ruby 2.3.0-p0), codename: Sassy Salamander
* Min threads: 5, max threads: 5
* Environment: production
* Listening on tcp://0.0.0.0:9292
Use Ctrl-C to stop
当我 运行 rails s -d -e production -p 9292
(作为守护进程)时,我得到:
=> Booting Puma
=> Rails 5.1.1 application starting in production on http://0.0.0.0:9292
=> Run `rails server -h` for more startup options
就是这样。我需要 运行 bundle exec puma -e production -p 9292 --pidfile tmp/pids/puma.pid -d
才能获得第二部分:
Puma starting in single mode...
...
另外,我的 Puma 日志在哪里?我在 log
文件夹中看到空白 production.log
,没有其他日志文件。
背景上下文:当我 运行 curl 0.0.0.0:9292
在 运行 将 rails
和 puma
作为守护进程后,我得到错误 An unhandled lowlevel error occurred. The application logs may have details.
啊,Puma 似乎只关心与 capistrano 一起使用时的 RAILS_ENV
。您可以使用 RACK_ENV
或 -e 代替吗?这应该有效:
RACK_ENV=production bundle exec puma -p 3000
或
bundle exec puma -p 3000 -e production
参见 here
希望有所帮助
rails s -e production -p 9292 -d
杀死服务器
杀死cat tmp/pids/server.pid
rails s -e 生产 -p 9292 -d
对于低于 5 的 Puma 版本,我们可以使用 -d
选项在后台启动。
puma -e production -p 4132 -C config/puma.rb -d
但是Puma gem在5以上的版本中不支持-d
选项
In version 5.0 the authors of the popular Ruby web server Puma chose to remove the daemonization support from Puma, because the code wasn't wall maintained, and because other and perhaps better options exist (such as systemd, etc), not to mention many people have switched to Kubernetes and Docker, where you want to start all servers on the foreground
您可以使用此 gem 在后台启动。