我想从我的gem代码中启动服务器,Rails启动Unicorn,Puma,Webrick或其他任何“rails server”的方式。我想要一个像“mygem服务器”这样的二进制文件,这将启动Passenger。
我尝试使用反引号,但是如果可能的话,我想避免产生另一个进程。 (另外,当我这样做时,我从乘客那里丢失了标准。)
命令行是启动Passenger的唯一方法吗?
答案 0 :(得分:0)
Passanger是一个C ++“gem”,它实际上运行与根服务器进程分离的Ruby层。
开发人员认为这种方法可以保护服务器免受Ruby相关问题的影响(我认为这不是必需的,但它确实很有趣)。
这给你留下了几个选择:
您可以使用Kernel.exec
替换当前流程与您提供的命令行。
您可以使用其他服务器,例如Puma,Iodine,Agoo或您喜欢的任何服务器。
每个服务器都有其优点和缺点,因此请进行测试和选择。
我从经验中知道你可以从一段代码中开始所有这些(或者我记得)。