【问题标题】:How to use Ruby and PIK together with Windows Services?如何将 Ruby 和 PIK 与 Windows 服务一起使用?
【发布时间】:2014-05-05 10:04:43
【问题描述】:

我有一个运行多个 Ruby 应用程序的 Windows 服务器,其中一些需要不同的 Ruby 版本。为了管理 Ruby 版本,我们使用“PIK”Ruby 版本管理器。

对于应用程序,我们使用 Windows Services + SrvAny + Thin 来运行它。配置截图:

但是,我找不到任何有关如何更改此特定 Windows 服务的 Ruby 版本的文档。现在,它只选择 PATH 环境变量中的那个。

有没有办法通过 Windows 系统服务使用 pik 更改 ruby​​ 版本?

【问题讨论】:

    标签: ruby-on-rails ruby thin win64 pik


    【解决方案1】:

    我相信有很多方法可以做你想做的事,但我想到的一种是编辑bundle.bat,它可能用于启动你的服务并在文件顶部的某处添加pik 命令来指定您要使用的版本。

    例如:

    pik use 186 mingw
    

    这将切换到指定的版本(您可以使用pik list 查看您系统可用的 ruby​​ 版本)并使用此版本执行您的服务。

    有关详细信息,另请参阅 pikusage guide

    【讨论】:

    • 谢谢,我在考虑这个……我会试试的。
    • 好的,我尝试将 PIK 添加到 bundle.exe。如果我这样做,应用程序根本不会运行,无论是通过 CMD.EXE 还是 Windows 服务。第一个命令是 @@C:\bin\pik.bat use 193@@ 在顶部,最后一个是没有。 cl.ly/image/1M2e1e3u3z15
    • 在我看来,它开始正常并且正在监听连接。如果您想摆脱有关 Gemfile 源的警告,只需将其添加到项目的 Gemfile 中:source "https://rubygems.org"
    • 是的,当我删除 PIK 命令时它运行良好。但是,如果我执行 ""C:\bin\pik_runner.exe" "C:\bin\pik.bat" use 193" 而不仅仅是 "C:\bin\pik.bat use 193" 似乎它正在工作,显然bat 文件以某种方式停止执行。
    • 不,很遗憾,服务仍然无法运行。
    【解决方案2】:

    您可以在 pik 中使用以下命令(使用 Windows 服务的示例):

    pik 193 & rails server
    

    上下文:

    当服务运行时,这是使用默认安装的 ruby​​,例如启动 bar.rb,然后 bar.rb 启动其他 ruby​​ 服务器,如 rails 服务器或瘦服务器,但如果您使用 dos 命令启动它以打开新实例然后您可以使用这 2 个命令:pik 和所需的命令

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-30
      • 1970-01-01
      • 1970-01-01
      • 2017-11-17
      • 2013-10-18
      • 2013-05-20
      • 2014-01-03
      相关资源
      最近更新 更多