2016-05-30 112 views
4

我使用sidekiq暴發戶的工作,但在運行sudo service sidekiq restart收到以下錯誤有嘗試加載寶石「院子」

There was an error while trying to load the gem 'yard'. 
/home/ubuntu/.rvm/gems/[email protected]/gems/bundler-1.11.2/lib/bundler/runtime.rb:80:in `rescue in block (2 levels) in require' 
/home/ubuntu/.rvm/gems/[email protected]/gems/bundler-1.11.2/lib/bundler/runtime.rb:76:in `block (2 levels) in require' 
/home/ubuntu/.rvm/gems/[email protected]/gems/bundler-1.11.2/lib/bundler/runtime.rb:72:in `each' 
/home/ubuntu/.rvm/gems/[email protected]/gems/bundler-1.11.2/lib/bundler/runtime.rb:72:in `block in require' 
/home/ubuntu/.rvm/gems/[email protected]/gems/bundler-1.11.2/lib/bundler/runtime.rb:61:in `each' 
/home/ubuntu/.rvm/gems/[email protected]/gems/bundler-1.11.2/lib/bundler/runtime.rb:61:in `require' 
/home/ubuntu/.rvm/gems/[email protected]/gems/bundler-1.11.2/lib/bundler.rb:99:in `require' 
/home/ubuntu/myapp/config/application.rb:8:in `<top (required)>' 
/home/ubuntu/.rvm/rubies/ruby-2.2.1/lib/ruby/gems/2.2.0/gems/sidekiq-3.2.5/lib/sidekiq/cli.rb:231:in `require' 
/home/ubuntu/.rvm/rubies/ruby-2.2.1/lib/ruby/gems/2.2.0/gems/sidekiq-3.2.5/lib/sidekiq/cli.rb:231:in `boot_system' 
/home/ubuntu/.rvm/rubies/ruby-2.2.1/lib/ruby/gems/2.2.0/gems/sidekiq-3.2.5/lib/sidekiq/cli.rb:49:in `run' 
/home/ubuntu/.rvm/gems/[email protected]/gems/sidekiq-3.2.5/bin/sidekiq:8:in `<top (required)>' 
/home/ubuntu/.rvm/rubies/ruby-2.2.1/bin/sidekiq:23:in `load' 
/home/ubuntu/.rvm/rubies/ruby-2.2.1/bin/sidekiq:23:in `<main>' 

以下的錯誤是暴發戶工作

的/ etc /init/sidekiq.conf

# /etc/init/sidekiq.conf - Sidekiq config 

# This example config should work with Ubuntu 12.04+. It 
# allows you to manage multiple Sidekiq instances with 
# Upstart, Ubuntu's native service management tool. 
# 
# See workers.conf for how to manage all Sidekiq instances at once. 
# 
# Save this config as /etc/init/sidekiq.conf then manage sidekiq with: 
# sudo start sidekiq index=0 
# sudo stop sidekiq index=0 
# sudo status sidekiq index=0 
# 
# Hack Upstart's reload command to 'quiet' Sidekiq: 
# 
# sudo reload sidekiq index=0 
# 
# or use the service command: 
# sudo service sidekiq {start,stop,restart,status} 
# 

description "Sidekiq Background Worker" 

# This script is not meant to start on bootup, workers.conf 
# will start all sidekiq instances explicitly when it starts. 
start on runlevel [2345] 
stop on runlevel [06] 

# change to match your deployment user 
setuid ubuntu 
setgid ubuntu 


#respawn 
#respawn limit 3 30 

# TERM is sent by sidekiqctl when stopping sidekiq. Without declaring these as 
# normal exit codes, it just respawns. 
normal exit 0 TERM 

# Older versions of Upstart might not support the reload command and need 
# this commented out. 
reload signal USR1 

# Upstart waits 5 seconds by default to kill the a process. Increase timeout to 
# give sidekiq process enough time to exit. 
kill timeout 15 

#instance $index 

script 
# this script runs in /bin/sh by default 
# respawn as bash so we can source in rbenv 
exec /bin/bash <<'EOT' 
    # Pick your poison :) Or none if you're using a system wide installed Ruby. 

    source /home/ubuntu/.bash_profile 
    source /home/ubuntu/.rvm/scripts/rvm 
    source /home/ubuntu/.bashrc 
    # Logs out to /var/log/upstart/sidekiq.log by default 

    cd /home/ubuntu/myapp/ 
    exec bundle exec sidekiq -C config/sidekiq.yml -e production 
EOT 
end script 

如何得到這個工作。我也安裝了寶石yard但仍然得到相同的錯誤。

回答

3

我得到了這個問題,$HOME變量沒有被認爲是在暴發性工作中定義的。因此,~登錄yard.rb gem文件沒有得到擴展到實際路徑。比我在暴發戶中明確定義變量並使其起作用。

0

您還沒有在您的Gemfile中列出yard並完成了bundle

+0

儘管我沒有在Gemfile中列出它,但是我手動安裝了它。而且,相同的Gemfile和配置在其他服務器上工作。 –

+0

我有Gemfile中的寶石,它已安裝,但仍然給出相同的錯誤 –