首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ruby守护进程在rails加载时挂起

Ruby守护进程在rails加载时挂起
EN

Stack Overflow用户
提问于 2009-04-28 19:00:15
回答 2查看 1.3K关注 0票数 0

我有一个问题,让一个工作的守护进程正常工作。当我运行时:

代码语言:javascript
复制
ruby script/workling_client run

守护进程开始加载rails,但无限期地挂起。当我终止进程时,堆栈跟踪始终是相同的:

代码语言:javascript
复制
/Library/Ruby/Gems/1.8/gems/activesupport-2.1.2/lib/active_support/core_ext/load_error.rb:32:in `new': Interrupt
from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require'
from /Library/Ruby/Gems/1.8/gems/activesupport-2.1.2/lib/active_support/dependencies.rb:510:in `require'
from /Library/Ruby/Gems/1.8/gems/activesupport-2.1.2/lib/active_support/dependencies.rb:355:in `new_constants_in'
from /Library/Ruby/Gems/1.8/gems/activesupport-2.1.2/lib/active_support/dependencies.rb:510:in `require'
from /Library/Ruby/Gems/1.8/gems/httpclient-2.1.2/lib/httpclient.rb:68
from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require'
 ... 81 levels...
from /Library/Ruby/Gems/1.8/gems/daemons-1.0.10/lib/daemons/cmdline.rb:105:in `call'
from /Library/Ruby/Gems/1.8/gems/daemons-1.0.10/lib/daemons/cmdline.rb:105:in `catch_exceptions'
from /Library/Ruby/Gems/1.8/gems/daemons-1.0.10/lib/daemons.rb:138:in `run'
from script/workling_client:18

如果我在不使用守护进程库的情况下运行该脚本,它将按预期运行。事实上,我在使用守护程序gem加载任何需要我的rails环境的东西时遇到了问题。有什么想法吗?

更新: workling_client将工作台listen.rb作为守护进程加载。我没有在listen.rb中加载rails,而是将其更改为在workling_client中加载,并且该过程可以顺利运行。因此,我无法在守护脚本中加载rails是有原因的:-(

EN

回答 2

Stack Overflow用户

发布于 2011-02-10 01:31:42

你能发布启动守护程序脚本的代码吗?我知道在守护进程脚本中加载rails是可能的,因为我们为delayed_jobs脚本这样做了。

脚本的初始部分执行以下操作:

代码语言:javascript
复制
require File.expand_path(File.join(File.dirname(__FILE__), '..', 'config',
      'environment'))

根据rails项目中的environment.rb文件进行调整。然后,该进程继续对自身进行守护:

代码语言:javascript
复制
Worker::Command.new(ARGV, :workers => worker_config).daemonize

我们的脚本在执行daemonize步骤之前加载rails。如果这不起作用,请包括您的脚本如何加载rails。

票数 1
EN

Stack Overflow用户

发布于 2010-11-30 10:41:39

尝试在没有显示器的情况下开始工作:

代码语言:javascript
复制
options = {
  :app_name   => "workling",
  :ARGV       => ARGV,
  :dir_mode   => :normal,
  :dir        => File.join(File.dirname(__FILE__), '..', 'log'),
  :log_output => true,
  :multiple   => false,
  :backtrace  => true,
  :monitor    => false
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/799387

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档