Rails Unicorn init脚本没有执行。说无法找到Ruby

时间:2014-04-14 12:33:33

标签: ruby-on-rails unicorn

无法让独角兽作为服务运行。当我打电话给#34; sudo service unicorn restart"时,我收到以下错误。

如果我打电话给' / var / www / mysite / bin / unicorn -D -c /var/www/mysite/config/unicorn.rb -E production'从应用程序的根目录,它运行得很好。我甚至可以打电话给#34; sudo service unicorn restart"之后就好了。

非常感谢任何帮助!

ubuntu@ip:$ sudo service unicorn restart
Couldn't reload, starting '/var/www/mysite/bin/unicorn -D -c /var/www/mysite/config/unicorn.rb -E production' instead
/usr/bin/env: ruby: No such file or directory

这里是终端输出,显示系统使用的红宝石。

ubuntu@ip:$ which ruby
/home/ubuntu/.rbenv/shims/ruby

我在Ubuntu 12.04上运行。 Rails 4,Ruby 2.1和nginx

2 个答案:

答案 0 :(得分:2)

我有同样的问题,但我在每个用户的基础上使用rbenv。 我使用了init script

我发现自从我的rbenv按用户安装后,我需要稍微改变一下:

CMD="cd $APP_ROOT; bundle exec unicorn -D -c $APP_ROOT/config/unicorn.rb -E production"

用这个:

CMD="cd $APP_ROOT; ~/.rbenv/bin/rbenv exec bundle exec unicorn -D -c $APP_ROOT/config/unicorn.rb -E production"

希望它会对你有所帮助!

答案 1 :(得分:1)

您的问题是您的rbenv安装仅为ubuntu用户加载,但您以root身份运行独角兽。

您可能希望为root用户安装rbenv,或者全局安装。