无法启动delayed_job服务

时间:2010-12-22 04:09:18

标签: ruby delayed-job

我使用delayed_job在后台进程上做一些工作。我在本地机器上运行相同的项目,它工作正常。但是,我在服务器上运行它会导致问题。 我还有另一个使用delayed_job的项目,它可以在导致问题的同一台服务器上正常工作。

以下是例外情况:

exit
["/usr/lib/ruby/gems/1.8/gems/daemons-1.1.0/lib/daemons/daemonize.rb:167:in `exit'", 
"/usr/lib/ruby/gems/1.8/gems/daemons-1.1.0/lib/daemons/daemonize.rb:167:in `call_as_daemon'", 
"/usr/lib/ruby/gems/1.8/gems/daemons-1.1.0/lib/daemons/application.rb:254:in `start_proc'",
"/usr/lib/ruby/gems/1.8/gems/daemons-1.1.0/lib/daemons/application.rb:294:in `start'", 
"/usr/lib/ruby/gems/1.8/gems/daemons-1.1.0/lib/daemons/controller.rb:70:in `run'", 
"/usr/lib/ruby/gems/1.8/gems/daemons-1.1.0/lib/daemons.rb:193", 
"/usr/lib/ruby/gems/1.8/gems/daemons-1.1.0/lib/daemons/cmdline.rb:112:in `call'", 
"/usr/lib/ruby/gems/1.8/gems/daemons-1.1.0/lib/daemons/cmdline.rb:112:in `catch_exceptions'", 
"/usr/lib/ruby/gems/1.8/gems/daemons-1.1.0/lib/daemons.rb:192:in `run_proc'", 
"/usr/lib/ruby/gems/1.8/gems/delayed_job-2.0.3/lib/delayed/command.rb:71:in `run_process'", 
"/usr/lib/ruby/gems/1.8/gems/delayed_job-2.0.3/lib/delayed/command.rb:65:in `daemonize'", 
"/usr/lib/ruby/gems/1.8/gems/delayed_job-2.0.3/lib/delayed/command.rb:63:in `times'", 
"/usr/lib/ruby/gems/1.8/gems/delayed_job-2.0.3/lib/delayed/command.rb:63:in `daemonize'",
 "script/delayed_job:5"]
delayed_job: process with pid 16880 started.

1 个答案:

答案 0 :(得分:0)

奇怪的是它确实说'用pid 16880开始的过程'。如果你运行这个:

ps -Alf | grep 16880

它是否显示进程正在运行?在这种情况下,我会查阅它正在写出的日志文件。

您可能没有权限启动该流程?尝试

sudo RAILS_ENV=production script/delayed_job start

将这些内容保存在服务器上并不是一个好主意 - 但它应该告诉您,对于运行dj进程的用户,是否存在用户权限问题。

最重要的是,请确保您没有意外地运行了几个delayed_job守护程序实例。不确定将调用什么进程,但是你可以使用ps和grep来查找所有实例然后杀死它们:

ps -Alf | grep delayed_job

然后,假设你看到有几个实例正在运行,第一个实例的进程ID为123456

kill -HUP 123456