启动 rails 服务器作为守护进程不会触发工作集群

Starting rails server as deamon doesn't trigger worker cluster

我想以生产模式启动 rails 服务器作为守护进程 运行 工作集群。当我启动我的 rails 程序时,一切都按预期工作。

rails s -e production -b 0.0.0.0
=> Booting Puma
=> Rails 5.0.0.1 application starting in production on http://0.0.0.0:3000
=> Run `rails server -h` for more startup options
[12340] Puma starting in cluster mode...
[12340] * Version 3.4.0 (ruby 2.3.0-p0), codename: Owl Bowl Brawl
[12340] * Min threads: 5, max threads: 5
[12340] * Environment: production
[12340] * Process workers: 3
[12340] * Preloading application
[12340] * Listening on tcp://0.0.0.0:3000
[12340] Use Ctrl-C to stop
[12340] - Worker 0 (pid: 12347) booted, phase: 0
[12340] - Worker 1 (pid: 12349) booted, phase: 0
[12340] - Worker 2 (pid: 12353) booted, phase: 0

然而,当我添加 -d rails 以单一模式启动时,通过检查 运行 进程

确认
rails s -e production -b 0.0.0.0 -d
=> Booting Puma
=> Rails 5.0.0.1 application starting in production on http://0.0.0.0:3000
=> Run `rails server -h` for more startup options

检查 运行 进程确认只有一个实例是 运行,而不是预期的集群模式。

那么,我该如何正确地将 worker 作为守护进程启动?

非常感谢任何帮助。

注意:我也 运行 puma_worker_killer 滚动重启以防有帮助。

rails (5.0.0.1) 美洲狮 (3.4.0) puma_worker_killer (0.1.0)

根据 Puma 文档,recommendedbundle exec puma 开头。

然后您可以 start a cluster 像这样:puma -t 8:32 -w 3。其中 -t 是 min:max 线程数,-w 是工人数。