守护进程spawn:gem_original_require:没有这样的文件加载--daemon-spawn(加载错误)

时间:2010-09-27 19:53:33

标签: ruby-on-rails ruby rubygems daemon

我正在尝试使用daemon-spawn gem运行守护程序进程。 这是delayed_delta守护进程的代码


#file - script/dj
#!/usr/bin/env ruby
# -*- ruby -*-
require 'rubygems'
require 'daemon-spawn'

RAILS_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..'))

class DelayedJobWorker  ENV['MIN_PRIORITY'],
      :max_priority => ENV['MAX_PRIORITY']
    ).start
  end

  def stop
    system("kill `cat #{RAILS_ROOT}/tmp/delayed_job.pid`")
  end
end

DelayedJobWorker.spawn!(:log_file => File.join(RAILS_ROOT, "log", "delayed_job.log"),
                        :pid_file => File.join(RAILS_ROOT, 'tmp', 'delayed_job.pid'),
                        :sync_log => true,
                        :working_dir => RAILS_ROOT)

当我运行

ruby script/dj start
时,这在我的本地机器上运行良好,但是当我在云服务器中运行它时,它会引发一个奇怪的错误


/usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require': no such file to load -- daemon-spawn (LoadError)
    from /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require'
    from script/dj:4

任何想法?有什么帮助吗?

3 个答案:

答案 0 :(得分:3)

我遇到了同样的问题,最初我有alexvollmer-daemon-spawn,但我无法运行更多的进程,所以我卸载它并安装了daemon-spawn gem,这对我来说很有用。

注意:使用alexvollmer-daemon-spawn gem时使用require daemon-spawn,但使用daemon-spawn时使用gem daemon_spawn(使用下划线)。

答案 1 :(得分:2)

有同样的问题。试试

require 'daemon_spawn'

即。使用下划线。

答案 2 :(得分:0)

看起来云服务器没有daemon-spawn gem。你在Heroku或其他什么地方使用捆绑器吗?