从 Ruby 代码开始 Phusion Passenger
Start Phusion Passenger from Ruby code
我想从我的 gem 代码中启动服务器,就像 Rails 使用 "rails server" 启动 Unicorn、Puma、Webrick 或其他任何东西一样。我想要一个像 "mygem server" 这样的二进制文件,它会启动 Passenger。
我尝试使用反引号,但我想尽可能避免产生另一个进程。 (此外,当我这样做时,我丢失了 Passenger 的标准输出。)
命令行是启动Passenger的唯一方式吗?
Passanger 是一个 C++ "gem",它实际运行与根服务器进程分离的 Ruby 层。
开发人员考虑使用这种方法来保护服务器免受 Ruby 相关问题的影响(我认为这不是必需的,但它确实很有趣)。
这给您留下了几个选择:
您可以使用 Kernel.exec
,它 用您提供的命令行替换 当前进程。
您可以使用其他服务器,例如 Puma, Iodine, Agoo 或任何您喜欢的服务器。
每个服务器都有自己的优点和缺点,所以测试和选择。
根据经验,我知道您可以从一个代码块中开始所有这些操作(我记得是这样)。
我想从我的 gem 代码中启动服务器,就像 Rails 使用 "rails server" 启动 Unicorn、Puma、Webrick 或其他任何东西一样。我想要一个像 "mygem server" 这样的二进制文件,它会启动 Passenger。
我尝试使用反引号,但我想尽可能避免产生另一个进程。 (此外,当我这样做时,我丢失了 Passenger 的标准输出。)
命令行是启动Passenger的唯一方式吗?
Passanger 是一个 C++ "gem",它实际运行与根服务器进程分离的 Ruby 层。
开发人员考虑使用这种方法来保护服务器免受 Ruby 相关问题的影响(我认为这不是必需的,但它确实很有趣)。
这给您留下了几个选择:
您可以使用
Kernel.exec
,它 用您提供的命令行替换 当前进程。您可以使用其他服务器,例如 Puma, Iodine, Agoo 或任何您喜欢的服务器。
每个服务器都有自己的优点和缺点,所以测试和选择。
根据经验,我知道您可以从一个代码块中开始所有这些操作(我记得是这样)。