【问题标题】:Start Phusion Passenger from Ruby code从 Ruby 代码启动 Phusion Passenger
【发布时间】:2018-05-08 13:44:40
【问题描述】:

我想从我的 gem 代码中启动服务器,就像 Rails 启动 Unicorn、Puma、Webrick 或任何“rails 服务器”一样。我想要一个像“mygem server”这样的二进制文件,它会启动Passenger。

我尝试使用反引号,但如果可能的话,我想避免产生另一个进程。 (另外,当我这样做时,我丢失了来自乘客的标准输出。)

命令行是启动Passenger的唯一方式吗?

【问题讨论】:

  • 您使用什么命令(带有反引号)来启动乘客?这个answer 似乎启动了Passenger 守护进程,(只需将命令的输出重定向到bash 中的日志文件以检索您的STDOUT)
  • 我使用passenger start 或它的一些变体。

标签: ruby passenger phusion


【解决方案1】:

Passanger 是一个 C++“宝石”,它实际上运行与根服务器进程分离的 Ruby 层。

开发人员考虑使用这种方法来保护服务器免受 Ruby 相关问题的影响(我认为这不是必需的,但它绝对很有趣)。

这给你留下了几个选择:

  1. 您可以使用Kernel.exec,它将当前进程替换为您提供的命令行。

  2. 您可以使用其他服务器,例如 PumaIodineAgoo 或任何您喜欢的服务器。

    每个服务器都有其优点和缺点,因此请测试并选择。

    根据经验,我知道您可以从一个代码块中开始所有这些(或者我记得)。

【讨论】:

  • 我没有想到 Kernel.exec;我认为这是要走的路,因为出于不相关的原因,我宁愿继续使用Passenger。非常感谢!
猜你喜欢
  • 2015-01-16
  • 1970-01-01
  • 1970-01-01
  • 2022-11-23
  • 2012-01-31
  • 2014-10-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多