-1

我想在我的 Amazon 服务器部署时自动运行脚本。但是,我的日志中不断出现以下错误:

/root/start.sh: /usr/bin/bundle: /usr/bin/ruby: bad interpreter: No such file or directory

我试过按摩我的启动脚本,但还没有找到解决方案。我可以手动加载上帝文件,但是当我启动我的机器时,我收到以下错误。如何设置它以便在我的脚本运行时检测到我的 bundler/ruby?

which ruby=>/usr/local/rvm/rubies/ruby-1.9.3-p194/bin/ruby

这是我应该自动运行的脚本(start.sh)

cat /dev/null > /root/log
echo "Starting environment for $(whoami) at $(date)" >> /root/log

export RAILS_ENV=production
export RAILS_ROOT=/root/Rails3/www_rails
export QUEUE_NAME=place_matching

export HOME=/root
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function

cd /root/Rails3/www_rails
RAILS_ENV=production bundle exec god -c /root/Rails3/www_rails/god/resque_generic.god >> /root/log 2>&1
echo "Environment running at $(date)" >> /root/log
4

1 回答 1

1

RVM 为您的问题提供文档https://rvm.io/integration/god/

另外你可以试试这个脚本:

cat /dev/null > /root/log
echo "Starting environment for $(whoami) at $(date)" >> /root/log

export RAILS_ENV=production
export RAILS_ROOT=/root/Rails3/www_rails
export QUEUE_NAME=place_matching

export HOME=/root

"$HOME/.rvm/bin/rvm" in $RAILS_ROOT do bundle exec god -c $RAILS_ROOT/god/resque_generic.god >> /root/log 2>&1
echo "Environment running at $(date)" >> /root/log

这是 rvm 的新符号,基本上可以写成:

rvm in /path/to/project do <command> ...

并且等同于您尝试做的事情。

更重要的一件事是,如果您以与拥有 RVM 的用户不同的用户身份运行它,那么您的项目.rvmrc也需要被该新用户信任。或者,您可以使用不需要信任的新项目文件之一:

  • .ruby-version=>1.9.3@project
  • Gemfile=> #ruby=1.9.3@project/ruby="1.9.3"
  • .versions.conf=>ruby=1.9.3@project

请注意,第二种形式也进行捆绑验证,并且不允许补丁级别或 gemset 名称。

于 2012-12-19T18:51:59.177 回答