Supervisord:如何获取rvm,并捆绑exec来启动rails脚本?

nem*_*ign 6 ruby bundler rvm supervisord

我正在尝试用supervisord管理一个ruby脚本但因为我还没有完全理解RVM是如何工作的,所以我无法正确地完成它.

通常我会做以下事情:

# sourcing of rvm done automatically on ssh login
cd /var/rails/myapp
RAILS_ENV="production" bundle exec ./script/backgroundrb
Run Code Online (Sandbox Code Playgroud)

但是使用以下配置文件我无法做到:

[program:owgm]
directory=/var/rails/owgm
command=bundle exec ./script/backgroundrb
environment=RAILS_ENV="production"
PATH="/usr/local/rvm/gems/ree-1.8.7-2012.02@global/bin/bundle:$PATH"
autostart=true
autorestart=true
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

无法加载OpenSSL.您必须使用OpenSSL支持重新编译Ruby,或者将Gemfile中的源从"https"更改为"http".有关使用RVM使用OpenSSL进行编译的说明,请访问rvm.io/packages/openssl.

看起来我无法获得正确的红宝石环境.

我认为设置路径会起作用,因为如果我这样做:

which bundle
Run Code Online (Sandbox Code Playgroud)

我得到:/usr/local/rvm/gems/ree-1.8.7-2012.02@global/bin/bundle

但我甚至不确定发生了什么.

使用Python我会做类似的事情:

command=/path/to/virtualenv/bin/python /path/to/script.py
Run Code Online (Sandbox Code Playgroud)

我可以用红宝石做类似的事吗?

rvm信息的输出是:

ree-1.8.7-2012.02:

  system:
    uname:       "Linux owtb2 3.2.0-44-generic #69-Ubuntu SMP Thu May 16 17:35:01 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux"
    system:      "ubuntu/12.04/x86_64"
    bash:        "/bin/bash => GNU bash, version 4.2.25(1)-release (x86_64-pc-linux-gnu)"
    zsh:         " => not installed"

  rvm:
    version:      "rvm 1.21.3 (stable) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]"
    updated:      "4 months 4 days 3 hours 54 minutes 35 seconds ago"

  ruby:
    interpreter:  "ruby"
    version:      "1.8.7"
    date:         "2012-02-08"
    platform:     "x86_64-linux"
    patchlevel:   "2012-02-08 MBARI 8/0x6770 on patchlevel 358"
    full_version: "ruby 1.8.7 (2012-02-08 MBARI 8/0x6770 on patchlevel 358) [x86_64-linux], MBARI 0x6770, Ruby Enterprise Edition 2012.02"

  homes:
    gem:          "/usr/local/rvm/gems/ree-1.8.7-2012.02"
    ruby:         "/usr/local/rvm/rubies/ree-1.8.7-2012.02"

  binaries:
    ruby:         "/usr/local/rvm/rubies/ree-1.8.7-2012.02/bin/ruby"
    irb:          "/usr/local/rvm/rubies/ree-1.8.7-2012.02/bin/irb"
    gem:          "/usr/local/rvm/rubies/ree-1.8.7-2012.02/bin/gem"
    rake:         "/usr/local/rvm/gems/ree-1.8.7-2012.02@global/bin/rake"

  environment:
    PATH:         "/usr/local/rvm/gems/ree-1.8.7-2012.02/bin:/usr/local/rvm/gems/ree-1.8.7-2012.02@global/bin:/usr/local/rvm/rubies/ree-1.8.7-2012.02/bin:/usr/local/rvm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
    GEM_HOME:     "/usr/local/rvm/gems/ree-1.8.7-2012.02"
    GEM_PATH:     "/usr/local/rvm/gems/ree-1.8.7-2012.02:/usr/local/rvm/gems/ree-1.8.7-2012.02@global"
    MY_RUBY_HOME: "/usr/local/rvm/rubies/ree-1.8.7-2012.02"
    IRBRC:        "/usr/local/rvm/rubies/ree-1.8.7-2012.02/.irbrc"
    RUBYOPT:      ""
    gemset:       ""
Run Code Online (Sandbox Code Playgroud)

nem*_*ign 7

感谢@mpapis的建议,我已经能够找到有用的东西.

不幸的是,他的建议没有,但他是正确的,我必须查看/ usr/local/rvm/wrappers

这是工作配置文件:

[program:owgm]
directory=/var/rails/owgm
command=/usr/local/rvm/wrappers/ree-1.8.7-2012.02/bundle exec ./script/backgroundrb
environment=RAILS_ENV="production"
autostart=true
autorestart=true
Run Code Online (Sandbox Code Playgroud)