我有一个简单的Ruby(Sinatra)服务器,使用ruby app.rb从命令行启动时没有问题。但是,当我通过命令行应用程序执行相同的命令时,使用ruby app.rb或…
ruby app.rb
自我回答,因为我找到了解决方案,没有其他人回答:
而不是仅执行 ruby app.rb ,它本身在与周围程序相同的环境中运行,因此使用相同的Gemfile(忽略生成的脚本中引用的那个),执行:
system("BUNDLE_GEMFILE='./Gemfile' && ruby app.rb")
这就是它的全部!这告诉Ruby在运行程序时加载正确的gemfile。
个人说明: 非常感谢大家在讨论,上面,问题,以及本地Ruby小组,我最好的朋友,以及我12岁的编码员儿子(实际上提供了确切的代码)。现在我只需要弄清楚如何 停 产生的过程没有停止周围的程序。不能只使用“Ctrl-C”。但这是一个不同的问题!