我希望在我的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
答案 0 :(得分: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
=&gt; 1.9.3@project
Gemfile
=&gt; #ruby=1.9.3@project
/ ruby="1.9.3"
.versions.conf
=&gt; ruby=1.9.3@project
请注意,第二种形式也会进行捆绑器验证,并且不允许使用patchlevel或gemset名称。